我正在尝试执行我认为使用 CTE 是 SQL Server 2008 的困难递归。我似乎无法解决这个问题。
在下面的示例中,您可以假设固定深度为 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。