Kueri Hierarkis dan Rekursif di SQL Server
Jasmin Ludolf
Content Developer
Terdiri dari 4 bagian:
WITH cte_name AS (-- Anggota jangkar initial_queryUNION ALL -- Anggota rekursif recursive_query termination_condition )SELECT * FROM cte_name
Untuk lebih dari 100 langkah rekursi, tingkatkan batas rekursi:
OPTION(MAXRECURSION 32767)Pernyataan SQL berikut tidak diizinkan: GROUP BY, HAVING, LEFT JOIN, RIGHT JOIN, OUTER JOIN, SELECT DISTINCT, Subqueries,TOP
Jumlah kolom pada anggota jangkar dan rekursif harus sama
Tipe data pada anggota jangkar dan rekursif harus sama
Menghitung faktorial:
Faktorial
nadalah hasil kali semua bilangan bulat positif ≤n:
3! = 1 x 2 x 3 = 6
Faktorial n! didefinisikan secara rekursif sebagai berikut:
0! = 1 untuk iteration = 1(n+1)! = n! * (iteration+1) untuk 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
Kueri Hierarkis dan Rekursif di SQL Server