2011-05-05 2 views
3

정말 빨리 질문 ... 나는 이렇게 UNION - 4 테이블을 가지고 :UNION 2+ 테이블을 사용하여 알파벳 기본 ORDER BY를 재정의 하시겠습니까?

SELECT * FROM table1 
UNION 
SELECT * FROM table2 
UNION 
SELECT * FROM table3 
UNION 
SELECT * FROM table4 

ORDER BY을 지정하지 않고, 쿼리 순서는 오름차순으로 오름차순으로 알파벳 순서 (내 경우에는 발생합니다 varchar 유형이어야 함). 나는 ORDER BY [Column1] DESC도 원하지 않는다.

테이블 자체가 UNION -ed 인 것과 같은 순서로 결과를 정렬하기 만하면됩니다. 1, 2, 3, 4.

이 작업을 수행하는 간단한 방법이 있습니까?

고마워!

답변

4

한 가지 방법은

SELECT *,1 as SortOrder FROM table1 
UNION 
SELECT *,2 FROM table2 
UNION 
SELECT *,3 FROM table3 
UNION 
SELECT *,4 FROM table4 
order by SortOrder 

무슨 일 당신이

UNION ALL가 지나요 테이블을 정렬 할 필요가 그렇게하기 위해, UNION은, SQL 서버, 결과는 별개의 설정하게 사용하고 있다는 것입니다 차?

+0

예! UNION ALL을 사용하면 트릭을 수행합니다. 누군가 정상인지 확인 할 수 있습니까? – Ray

+0

내가 아는 한, 'UNION ALL' _이 _ 반드시 _ 이런 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _합니다. 나는 'ALL'SQLMenace의 트릭이 필요하다고 생각합니다. –

관련 문제