임시테이블 또는 가상 테이블의 개념
이름을 가진 SubQuery를 정의한 후 사용하는 구문
반복되는 서브쿼리 블록을 하나의 WITH절 블록으로 만들어서 사용할 수 있음
Query의 전체적인 가독성을 높이고, 재사용할 수 있는 장점이 있음
대부분의 DBMS에서 지원
계층형 쿼리 구현 가능
컬럼명 생략 가능
쉼표로 구분해 여러개 정의 가능
먼저 생성된 서브쿼리는 후에 생성된 서브 쿼리에서 사용 가능
SELECT T1.*
FROM (
SELECT A.DEPTNO, A.LOC
FROM SCOTT.DEPT A
) T1
WHERE 1=1
WITH DEPT_LOC ( DEPTNO, LOC ) AS (
SELECT A.DEPTNO, A.LOC
FROM SCOTT.DEPT A
)
SELECT T1.*
FROM DEPT_LOC
WHERE 1=1