IT민들레 - M365 Specialist

[Oracle] WITH 구문 예제 본문

IT, Digital, 컴퓨터, 스마트폰

[Oracle] WITH 구문 예제

IT민들레 2015. 11. 18. 12:20
728x90
반응형

[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

 


 

 

출처 : http://powerofwriting.tistory.com/entry/Oracle-WITH-%EA%B5%AC%EB%AC%B8-%EC%98%88%EC%A0%9C


728x90
반응형