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 中的分层与递归查询