반응형
Common Table Expression (CTE)
WITH 구문은 메모리 상에 가상의 테이블을 저장할 때 사용된다. RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 가능하다.
WITH [RECURSIVE] TABLE명 AS (
SELECT - # 비반복문. 무조건 필수
[UNION ALL] # RECURSIVE 사용 시 필수. 다음에 이어붙어야 할 때 사용
SELECT -
[WHERE -] # RECURSIVE 사용 시 필수. 정지 조건 필요할 때 사용
)
👀 WITH 구문
WITH 구문 이후에 오는 쿼리에서 임시 테이블의 테이블명을 사용하여 값을 참조할 수 있다.
- 예시
WITH CTE AS ( SELECT 0 AS NUM UNION ALL SELECT 0 FROM SOME_TABLE # SOME_TABLE의 행 수만큼 반복된다. )
👀 WITH RECURSIVE 구문
WITH RECURSIVE 구문은 가상 테이블을 생성하면서 가상 테이블 자신의 값을 참조하여 값을 결정할 때 사용된다.
- 예시
0 ~ 10의 값을 갖는 임시 테이블을 생성
WITH RECURSIVE CTE AS( SELECT 0 AS NUM # 초기값 설정 UNION ALL SELECT NUM+1 FROM CTE WEHRE NUM < 10 # 반복을 멈추는 조건 )
👀 관련 문제
https://programmers.co.kr/learn/courses/30/lessons/59413
반응형
'개발 공부 > SQL' 카테고리의 다른 글
[SQL] 결괏값 개수 제한 - LIMIT 사용법 (0) | 2021.10.09 |
---|
댓글