SQL에도 재귀 쿼리 존재함!
WITH RECURSIVE 가상테이블명
AS (
-- Non-Recursive 문장 (첫번째 루프에서만 실행됨)
SELECT 1 AS N
-- UNION을 사용해 재귀 구성
UNION ALL
-- Recursive 문장 (읽어 올 때마다 행의 위치가 기억되어 다음번 읽어 올 때 다음 행으로 이동)
SELECT N+1 AS NUM
FROM 가상테이블명
WHERE 조건절
)
-- 재귀 쿼리 출력
SELECT * FROM 가상테이블명
UNION
사용해야함Q) 1부터 10까지 숫자 출력하기
WITH RECURSIVE NUMBER AS (
SELECT 1 AS NUM
UNION
SELECT NUM+1 AS N
FROM NUMBER
WHERE NUM < 10
)
SELECT * FROM NUMBER;