我試圖執行我認爲使用CTE的困難遞歸是SQL Server 2008.我似乎無法將我的頭圍繞在這一個。SQL Server 2008 CTE遞歸
在下面的例子中,你可以假定固定的深度爲3 ......沒有比這更低的了。在現實生活中,深度「更深」但仍然固定。在這個例子中,我試圖簡化它。
我的輸入數據如下所示。
ID PARENT_ID NAME DEPTH
------------------------------------------
1 NULL A 1
2 1 B 2
3 2 C 3
4 1 D 2
我的CTE的輸出應該是下表。
LEVEL1_ID LEVEL2_ID LEVEL3_ID LEVEL1_NAME LEVEL2_NAME LEVEL3_NAME
--------------------------------------------------------------------------------
1 NULL NULL A NULL NULL
1 2 NULL A B NULL
1 2 3 A B C
1 4 NULL A D NULL
如果我可以在輸出中獲得ID列,我當然可以映射到查找表中的名稱。
我願意接受其他方式來完成這項工作,包括使用SSIS。
我不明白你是看你的輸出端施加什麼邏輯。我認爲最後一行應該是'/ B/D',因爲'D'的父ID是2,即'B' – IsmailS 2010-07-01 15:25:04
剛剛更新了這個問題。抱歉。 – thomas 2010-07-01 15:26:17
再次相同。在#4行中,爲什麼當它的父ID是2時,需要Level1_ID爲'1'? – IsmailS 2010-07-01 15:29:58