반응형
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 11g ADRCI를 이용한 ADR 관리 (0) | 2013.03.28 |
---|---|
오라클 프로시저(Oracle Procedure) 기초 예제 (0) | 2013.02.07 |
토드(Toad)에서 오라클 프로시져(Oracle Procedure) 실행 방법 (0) | 2013.02.07 |
START WITH ~ CONNECT BY PRIOR 구문(계층 구조) (0) | 2013.01.31 |
[오라클,ORACLE] 쿼리 실행 시간 (0) | 2013.01.22 |
oracle 함수(산술, 문자열, 날짜, 날짜포맷 등) (0) | 2013.01.11 |
오라클 페이징 쿼리(Oracle paging query) (0) | 2012.08.14 |
오라클 쿼리 인덱스(ORACLE QUERY INDEX) (0) | 2012.08.14 |
다른 테이블과 JOIN하여 DELETE하기 (0) | 2012.08.14 |
오라클 내장함수 (0) | 2012.08.14 |