SQL/Oracle SQL
[oracle] WITH절
trueman
2022. 11. 22. 23:15
728x90
728x90
WITH절이란
WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리라고 생각하시면 됩니다.
* 차이점
VIEW는 한번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은경우 한번 실행할 쿼리문내에 정의되어 있을경우, 그 쿼리문안에서만 실행된다는 차이점이 있습니다.
WITH절을 사용하는 이유
WITH절은 복잡한 SQL에서 동일 블록에 대해 반복적으로 SQL문을 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함으로서 쿼리 성능을 높일 수 있는데 WITH절을 이용하여 미리 이름을 부여해서 Query Block을 만들 수 있습니다. 자주 실행되는 경우 한번만 Parsing되고 Plan 계획이 수립되므로 쿼리의 성능향상에 도움이 됩니다.
WITH temp AS (
SELECT * FROM TEST_01.TOY_BOARD
)
SELECT * FROM temp;
WITH temp1 AS (
SELECT 'MAX' AS CATEGORY, MAX(SCORE) FROM TEST_01.TOY_BOARD WHERE ROLE ='선수'
),
temp2 AS (
SELECT 'MIN' AS CATEGORY, MIN(SCORE) FROM TEST_01.TOY_BOARD WHERE ROLE ='선수'
UNION ALL
SELECT * FROM temp1
)
SELECT * FROM temp2;
728x90
728x90