재귀 CTE 소개

SQL Server에서의 계층형 및 재귀 쿼리

Jasmin Ludolf

Content Developer

재귀 CTE

4부분으로 구성됩니다:

WITH cte_name AS (

-- 앵커 멤버 initial_query
UNION ALL -- 재귀 멤버 recursive_query termination_condition )
SELECT * FROM cte_name
SQL Server에서의 계층형 및 재귀 쿼리

재귀 CTE 사용 가이드

  • 100단계 초과 시 재귀 단계 수를 늘리십시오:

    • OPTION(MAXRECURSION 32767)
  • 다음 SQL 구문은 허용되지 않습니다: GROUP BY, HAVING, LEFT JOIN, RIGHT JOIN, OUTER JOIN, SELECT DISTINCT, Subqueries,TOP

  • 앵커와 재귀 멤버의 열 개수는 동일합니다

  • 앵커와 재귀 멤버의 데이터 타입은 동일합니다

SQL Server에서의 계층형 및 재귀 쿼리

재귀 예시

팩토리얼 계산:

n의 팩토리얼은 n 이하의 모든 양의 정수의 곱입니다:

3! = 1 x 2 x 3 = 6

팩토리얼 n!의 재귀 정의:

  • 0! = 1, iteration = 1일 때
  • (n+1)! = n! * (iteration+1), iteration > 1일 때
SQL Server에서의 계층형 및 재귀 쿼리

코드로 보는 재귀 예시

WITH recursion AS

(SELECT 1 AS iterationCounter,1 AS factorial
UNION ALL SELECT iterationCounter+1,factorial * (iterationCounter+1) FROM recursion
WHERE iterationCounter < 10 )
SELECT factorial FROM recursion
3628800
SQL Server에서의 계층형 및 재귀 쿼리

연습해 봅시다!

SQL Server에서의 계층형 및 재귀 쿼리

Preparing Video For Download...