2013. 1. 22. 17:50ㆍDatabase/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 |