Oracle

오라클 with 간단 설명 및 예제 (With... Select)

뽀우맨 2024. 2. 16. 08:26

 

반복되는 쿼리를 공용으로 사용하는 것이 View 지요!

그런데, View 를 사용하지 않고, Query 구문에서 바로 사용하고 싶은 경우, Oracle에서 WITH 를 사용합니다.

아래의 예 처럼 WITH 구문에 View명칭을 지정하고 ()안에 해당 쿼리를 작성하면,

바로 아래에 Select 구문에서 View 처럼 사용할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--예 1.)
WITH Temp1 AS (SELECT 'A' as Col1, 'B' as Col2 FROM dual), 
         Temp2 AS (SELECT 'C' as Col3, 'D' as Col4 FROM dual) 
SELECT  Col1,Col2,Col3,Col4 FROM Temp1, Temp2;
 
 
 
--예 2.)
 
WITH Temp AS (Select 'A' as Col1 from dual
                          union 
                          Select 'B' from dual
                          union
                          Select 'C' from dual
                      )
SELECT * FROM Temp 
 
 
 
--예 3.)
 
WITH Temp1 AS (SELECT 'A' as Col1, 'a' as Col2 FROM dual
                         UNION
                         SELECT 'B' as Col1, 'b' as Col2 FROM dual),
         Temp2 AS (SELECT 'A' as Col1, '1' as Col3, 'y' as Col4 FROM dual
                         UNION
                         SELECT 'B' as Col1, '2' as Col3, 'z' as Col4 FROM dual) 
SELECT  A.Col2, B.Col4
  FROM Temp1 A INNER JOIN Temp2 B
                                     ON A.Col1 = B.Col1
 WHERE A.Col1 = 'A'
cs