SQL Server 的階層式與遞迴查詢
Jasmin Ludolf
Content Developer
familyTree 由下列欄位組成:
IDNameparentID(父母的 ID)描述階層的元素:
IDparentID
記住遞迴 CTE 的原則:
也記住以下做法:
取得世代數
定義 LEVEL
-- Anchor member
0 as LEVEL
-- Recursive member
LEVEL + 1
計算 LEVEL 的筆數以得到世代數 COUNT(LEVEL)
Generations:
100
將所有可能的父母串在同一欄
-- Anchor member
CAST(ID AS VARCHAR(MAX)) as Parent
-- Recursive member
Parent + ' -> ' + CAST(parentID AS VARCHAR(MAX))
+---------------------------------------------+
| Name | Parent |
|-----------------|---------------------------|
|Dominik Egarter | 100 -> 101 -> 102 ->103 |
+---------------------------------------------+
SQL Server 的階層式與遞迴查詢