SQL Server에서의 계층형 및 재귀 쿼리
Jasmin Ludolf
Content Developer
4부분으로 구성됩니다:
WITH cte_name AS (-- 앵커 멤버 initial_queryUNION ALL -- 재귀 멤버 recursive_query termination_condition )SELECT * FROM cte_name
100단계 초과 시 재귀 단계 수를 늘리십시오:
OPTION(MAXRECURSION 32767)다음 SQL 구문은 허용되지 않습니다: GROUP BY, HAVING, LEFT JOIN, RIGHT JOIN, OUTER JOIN, SELECT DISTINCT, Subqueries,TOP
앵커와 재귀 멤버의 열 개수는 동일합니다
앵커와 재귀 멤버의 데이터 타입은 동일합니다
팩토리얼 계산:
n의 팩토리얼은n이하의 모든 양의 정수의 곱입니다:
3! = 1 x 2 x 3 = 6
팩토리얼 n!의 재귀 정의:
0! = 1, iteration = 1일 때(n+1)! = n! * (iteration+1), iteration > 1일 때WITH recursion AS(SELECT 1 AS iterationCounter,1 AS factorialUNION ALL SELECT iterationCounter+1,factorial * (iterationCounter+1) FROM recursionWHERE iterationCounter < 10 )SELECT factorial FROM recursion
3628800
SQL Server에서의 계층형 및 재귀 쿼리