본문 바로가기
SQL/Oracle

오라클 WITH 개념 및 예제 (가상 테이블 생성하여 활용)

by wakestand 2020. 11. 24.
반응형

오라클에서 WITH는 가상의 테이블을 만들 때 사용하는데

WITH 테이블명 AS ( 테이블명에 들어갈 값 )

이런 식으로 사용하게 된다

 

위 스크린샷과 같이 DUAL을 이용해 값을 넣거나

SELECT * FROM EMP와 같이

EMP 테이블의 데이터를 TBL1 안에 넣어줄 수 있다

 

위 예제에서는 WITH TBL1 AS 로 테이블을 생성하고

'E' 값을 넣은 후

 

아래에서 SELECT * FROM TBL1로

가상의 테이블인 TBL1의 데이터를 조회할 수 있는 것이 보인다

 

WITH를 여러개 사용할 경우에는

WITH 테이블명 AS (), 테이블명 AS ()

이런 식으로 사용하면 된다

 

WITH 안에서는 UNION, UNION ALL을 사용해

타 WITH 테이블과도 합치기가 가능하다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

WITH TBL1 AS
            (
              SELECT 'E' AS COL1 FROM DUAL
            )

SELECT * FROM TBL1;

 

WITH TBL1 AS 
            (
              SELECT 'A' AS COL1 FROM DUAL
              UNION ALL SELECT 'B' FROM DUAL
              UNION ALL SELECT 'C' FROM DUAL
              UNION ALL SELECT 'D' FROM DUAL
            ),
    TBL2 AS 
            (
              SELECT 'E' AS COL1 FROM DUAL
              UNION ALL
              SELECT COL1 FROM TBL1 -- 타 WITH와 합치기 가능
            )
SELECT * FROM TBL2; 
반응형

댓글