[오라클 SQL] 오라클 WITH 구문 사용 방법 및 예제



안녕하세요~~

 

오늘은 오라클 WITH 구문을 사용하는 방법에 대해서 알려드리고자 합니다!

 

먼저 오라클에서 WITH 구문에 대해서 간략히 설명을 드릴게요



 

WITH 구문 이란?


- WITH 구문은 쿼리의 결과가 여러 번 반복해서 사용될 때 유용합니다.

- 각 쿼리 Block의 이름을 지정할 수 있습니다.
-
오라클 옵티마이저는 WITH 구문으로 선언한 쿼리를 임시 테이블로 봅니다.

 

WITH 구문 선언 방법


WITH ALIAS AS (쿼리)

SELECT 컬럼1, 컬럼2… FROM ALIAS

 


STUDENT Table


단일 WITH 구문 SQL


1

2

3

4

5

6

7

8

9

WITH

STU_TMP AS

(

    SELECT CLASS, NAME, AGE

    FROM WIN.STUDENT

)

 

SELECT *

FROM WIN.STU_TMP

cs

 

실행 결과



위에서 임시테이블로 STU_TMP라고 만들어서 기존의 STUDENT 테이블에서 CLASS, NAME, AGE 컬럼만 뽑는 서브쿼리를 만들고 최종적으로 해당 STU_TMP 테이블을 조회를 해보니 CLASS, NAME, AGE 세 개의 컬럼들만 조회된 것을 확인 하실 수 있습니다!



 

다음으로는 다중 WITH 구문을 사용하는 방법을 보여드릴게요!


다중 WITH 구문 SQL


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

WITH

STU_TMP AS

(

    SELECT  CLASS, NAME, AGE

    FROM WIN.STUDENT

),

STU_SCORE AS

(

    SELECT NAME, SCORE

    FROM WIN.STUDENT

),

STU_GRADE AS

(

    SELECT NAME, GRADE

    FROM WIN.STUDENT

)

 

SELECT tmp.CLASS, tmp.NAME, tmp.AGE

           , score.SCORE, grade.GRADE

FROM WIN.STU_TMP tmp

INNER JOIN WIN.STU_SCORE score

ON tmp.NAME = score.NAME

INNER JOIN WIN.STU_GRADE grade

ON score.NAME = grade.NAME

cs

 

실행 결과



위와 같이 다중 WITH 구문을 사용하여 STUDENT 테이블의 데이터를 조회해 보았습니다!

 

글 읽어 주셔서 감사합니다ㅎㅎ




728x90

이 글을 공유하기

댓글

Designed by JB FACTORY