SQL Server における階層型クエリと再帰クエリ
Jasmin Ludolf
Content Developer
familyTree は次で表されます:
IDNameparentID階層を表す要素:
IDparentID
再帰CTEの原則を思い出しましょう:
動作の原則:
世代数を取得
LEVEL を定義
-- Anchor member
0 as LEVEL
-- Recursive member
LEVEL + 1
LEVELを数えて世代数を取得 COUNT(LEVEL)
Generations:
100
可能な親を1つのフィールドに集約
-- 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 における階層型クエリと再帰クエリ