이준빈은 호박머리

IT 프로그래밍 개발 정보 블로그, 이준빈은 호박머리 입니다.

Database/ORACLE

오라클 UNION 사용 시 ORDER BY 처리

준콩이 2013. 1. 22. 15:31
반응형

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;

반응형