반응형
http://www.zetswing.com/bbs/board.php?bo_table=ORACLE_TIP2&wr_id=36&page=1
WITH문은 Oracle9i 이상에서 지원됩니다.
원하는 데이타를 조회하여 가상테이블로 만든후 사용하는것입니다.
가상테이블은 메모리에 생성되므로 액세스 속도가 빠르며 조회후에는 자동으로 소멸됩니다.
Oralce의 with문은 속도뿐만 아니라 SQL QUERY문 자체도 많이 간결해졌습니다.
※ 특히 UNION에 똑같은 문장이 계속 들어갈 경우 사용하면 한번만 기술하고 불러쓰면 되므로 문장이 많이 간결해진다.
기본문법
단일 가상테이블 생성
WITH A AS
(
SELECT SQL QUERY....
)
SELECT * FROM A;
다중 가상테이블 생성
WITH A AS
(
SELECT SQL QUERY....
)
,
B AS
(
SELECT SQL QUERY....
)
SELECT * FROM A
UNION ALL
SELECT * FROM B;
사용예제
WITH TEST1 AS
(
SELECT '111' str FROM DUAL
UNION ALL
SELECT '222' str FROM DUAL
UNION ALL
SELECT '333' str FROM DUAL
UNION ALL
)
SELECT * FROM TEST1;
※ 이상하게 SQLGate for Oracle 에서는 WITH문 SQL QUERY 가 실행되지 않는다.ㅋ
※ SQL 쿼리내에서 WITH문은 한번만 사용해야 합니다.
반응형