SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular
Jasmin Ludolf
Content Developer
4 bölümden oluşur:
WITH cte_name AS (-- Başlangıç (anchor) üyesi initial_queryUNION ALL -- Özyinelemeli üye recursive_query termination_condition )SELECT * FROM cte_name
100’den fazla yineleme için yineleme sınırını artırın:
OPTION(MAXRECURSION 32767)Aşağıdaki SQL ifadelerine izin verilmez: GROUP BY, HAVING, LEFT JOIN, RIGHT JOIN, OUTER JOIN, SELECT DISTINCT, Subqueries,TOP
Başlangıç ve özyinelemeli üyenin sütun sayısı aynı olmalıdır
Başlangıç ve özyinelemeli üyenin veri türleri aynı olmalıdır
Faktöriyel hesaplama:
n’in faktöriyeli,n’e kadar olan pozitif tam sayıların çarpımıdır:
3! = 1 x 2 x 3 = 6
n! özyinelemeli olarak şöyle tanımlanır:
0! = 1 iterasyon = 1 için(n+1)! = n! * (iteration+1) iterasyon > 1 içinWITH 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'da Hiyerarşik ve Özyinelemeli Sorgular