Hiërarchische en recursieve queries in SQL Server
Jasmin Ludolf
Content Developer
Bestaat uit 4 delen:
WITH cte_name AS (-- Ankerlid initial_queryUNION ALL -- Recursief lid recursive_query termination_condition )SELECT * FROM cte_name
Voor meer dan 100 recursiestappen: verhoog het maximum:
OPTION(MAXRECURSION 32767)Niet toegestaan in de recursieve member: GROUP BY, HAVING, LEFT JOIN, RIGHT JOIN, OUTER JOIN, SELECT DISTINCT, Subqueries,TOP
Het aantal kolommen van anker en recursief lid is gelijk
De datatypen van anker en recursief lid zijn gelijk
Faculteit berekenen:
De faculteit van
nis het product van alle positieve gehele getallen ≤n:
3! = 1 x 2 x 3 = 6
De faculteit n! is recursief gedefinieerd als:
0! = 1 voor iteration = 1(n+1)! = n! * (iteration+1) voor iteration > 1WITH 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
Hiërarchische en recursieve queries in SQL Server