SQL/SQL공부
[SQL] Oracle WITH절(임시테이블)
웅겹사r☆
2021. 6. 9. 00:38
WITH는 VIEW와 매우 비슷하지만 차이점이있다.
WITH는 단일사용할 쿼리내에 정의되어 있는경우, 해당 쿼리문안에서만 실행된다.
VIEW는 한번 생성하면 DROP할 때까지 계속 존재한다.
WITH 기본구조
WITH DINNER_MENU AS (
SELECT '삼겹살' AS 오늘저녁메뉴 FROM dual
)
SELECT * FROM DINNER_MENU;
다중 WITH문
-- WITH절 안에서 다른 WITH을 참조가능
WITH DINNER_MENU AS (
SELECT '삼겹살' AS 오늘메뉴 FROM dual
UNION ALL
SELECT '항정살' FROM DUAL
),
LUNCH_MENU AS (
SELECT '가브리살' 오늘메뉴 FROM DUAL
UNION ALL
SELECT 오늘메뉴 FROM DINNER_MENU
)
SELECT * FROM LUNCH_MENU;
지난번 정규식때 사용한 부분인데 다시한번 기재한다
WITH SUBSTR_TEST AS (
SELECT 'aaaaaaa@naver.com' AS EMAIL FROM dual
UNION
SELECT 'bbbbbbb@yahoo.com' AS EMAIL FROM dual
UNION
SELECT 'ccccccccccccc@daum.net' AS EMAIL FROM dual
)
SELECT
REGEXP_SUBSTR(EMAIL, '[^@]+') AS FINAL_EMAIL
FROM SUBSTR_TEST;