오라클 UNION 사용 ORDER BY

2013. 1. 22. 17:50Database/ORACLE



반응형

UNION 사용 시 ORDER BY를 사용하는 방법.

 


오라클 쿼리 생성 시

UNION과 ORDER BY를 함께 사용하다보면 오류가 발생할 경우가 있습니다.

 


SELECT NO, NAME, TEL, ADDR FROM A_TABLE ORDER BY NO

UNION

SELECT NO, NAME, TEL, ADDR FROM B_TABLE ORDER BY NO;

위의 쿼리는 A_TABLE과 B_TABLE의 컬럼을 모두 뽑아오는 쿼리입니다.

A_TABLE에서 NO컬럼으로 정렬, B_TABLE에서도 ORDER BY 를 사용하여 정렬한

결과를 UNION하여 결과를 출력할 경우 오류가 발생합니다.

 

 

 

------------------------------------------------------------

해답은 아래에 있습니다.

SELECT * FROM으로 한번 더 감싸준 후 ORDER BY를 사용하면

오류를 피할 수 있습니다.

먼저 두 테이블의 값을 가지고 온 후 ALIAS를 사용하여

ORDER BY를 사용하는 방법입니다.

  ※ 오라클에서는 alias 사용 시 별칭 앞에 AS를 사용하지 않습니다.

      ex)select * from table 별칭

 


SELECT * FROM

(


SELECT NO, NAME, TEL, ADDR FROM A_TABLE A

UNION

SELECT NO, NAME, TEL, ADDR FROM B_TABLE B


)

ORDER BY A.NO, B.NO;

 

반응형

'Database > ORACLE' 카테고리의 다른 글

[Oracle TRIGGER]오라클 트리거  (0) 2013.10.10
오라클 소수점  (0) 2013.03.14
Oracle 내장함수  (0) 2013.02.08
Toad Oracle Procedure t 실행방법  (0) 2013.02.08
oracle 함수(산술, 문자열, 날짜, 날짜포맷 등)  (0) 2013.01.09