찌니의 프로그래밍 삼매경

[SQL] Oracle WITH절(임시테이블) 본문

SQL/SQL공부

[SQL] Oracle WITH절(임시테이블)

zzI니☆ 2021. 6. 9. 00:38
728x90

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;

 

728x90
Comments