SQL

SQL with recursive

MDanderson 2022. 10. 27. 16:20
WITH [RECURSIVE] TABLE명 AS (
    SELECT - # 비반복문. 무조건 필수
    [UNION ALL] # RECURSIVE 사용 시 필수. 다음에 이어붙어야 할 때 사용
    SELECT - 
    [WHERE -] # RECURSIVE 사용 시 필수. 정지 조건 필요할 때 사용
)

출처: https://horang98.tistory.com/10 [horang:티스토리]

 

👀 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://horang98.tistory.com/10 [horang:티스토리]

'SQL' 카테고리의 다른 글

SQL 두 종류이상 동시 count()하기  (0) 2022.10.29
SQL 입양시각 구하기  (0) 2022.10.27
SQL 우유와 요거트가 담긴 장바구니  (0) 2022.10.26
SQL Group by 주의점  (0) 2022.10.26
SQL 그룹별 최대값  (0) 2022.10.26