반응형

임시 테이블 만들기

A, B, C, D ...가 포함된 값을 where 조건 IN절에 넣을때 1000개 씩 밖에 조회가 되지 않는다.
1000개 이상의 값을 넣기 위해 아래와 같이 임시로 테이블을 만들거나
실제 테이블을 create 하는게 더 효율적일수 있다.


WITH TEST AS (
        SELECT 'A' AS GBN FROM DUAL UNION ALL
        SELECT 'B' AS GBN FROM DUAL UNION ALL
        SELECT 'C' AS GBN FROM DUAL UNION ALL
        SELECT 'D' AS GBN FROM DUAL UNION ALL
        SELECT 'E' AS GBN FROM DUAL UNION ALL
        SELECT 'F' AS GBN FROM DUAL UNION ALL
        SELECT 'G' AS GBN FROM DUAL
)
SELECT * FROM  TEST;


[WITH 구문]
- WITH구문내의 쿼리의 결과(SUB쿼리)가 여러번 사용될때(호출될때) 유용하다.
- 서브쿼리 블럭에 이름을 지정할 수 있도록 해줌.
- 오라클 옵티마이저는 쿼리를 인라인뷰나 임시 테이블로 여긴다.
- Oracle 9 이상 지원

반응형

+ Recent posts