[DB] SQL Syntax ( With 문 )

[Oracle] WITH 구문 예제

 

[WITH 구문]

– WITH구문내의 쿼리의 결과(SUB쿼리)가 여러번 사용될때(호출될때) 유용하다.

– 서브쿼리 블럭에 이름을 지정할 수 있도록 해줌.

– 오라클 옵티마이저는 쿼리를 인라인뷰나 임시 테이블로 여긴다.
– Oracle 9 이상 지원

 

 

[WITH 구문 사용방법]

WITH ALIAS명 AS ( SUB쿼리 )

SELECT 컬럼명 FROM ALIAS명;

 

WITH 구문 예제)

WITH AA AS

(SELECT ROWNUM, ‘TEST1’, SYSDATE

FROM DUAL

UNION ALL

SELECT ROWNUM, ‘TEST2’, SYSDATE

FROM DUAL

UNION ALL

SELECT ROWNUM, ‘TEST3’, SYSDATE FROM DUAL)

SELECT * FROM AA;

 

 

 

 

[WITH 구문(2개 SUB쿼리) 사용방법]

WITH ALIAS명_1 AS ( SUB쿼리 ),

ALIAS명_2 AS ( SUB쿼리 )

SELECT 컬럼명 FROM ALIAS명 where 조인조건;

 

WITH 구문(2개 SUB쿼리) 예제)

WITH AA AS
(SELECT ROWNUM AS SEQ, ‘TEST1’ AS NAME, SYSDATE
FROM DUAL
UNION ALL
SELECT ROWNUM AS SEQ, ‘TEST2’ AS NAME, SYSDATE
FROM DUAL
UNION ALL
SELECT ROWNUM AS SEQ, ‘TEST3’ AS NAME, SYSDATE FROM DUAL),

BB AS
(SELECT ROWNUM AS SEQ, ‘TEST1’ AS NAME, SYSDATE
FROM DUAL
UNION ALL
SELECT ROWNUM AS SEQ, ‘TEST2’ AS NAME, SYSDATE
FROM DUAL
UNION ALL
SELECT ROWNUM AS SEQ, ‘TEST3’ AS NAME, SYSDATE FROM DUAL)

SELECT * FROM AA, BB WHERE AA.NAME=BB.NAME