我们希望根据SQL Server中的ID获取特定记录的完整TREE结构(向下链)。这是我的数据表结构:
我们已经在程序中添加了这个CTE,但是我们正在处理大量的记录,并且遇到了一些问题。在这个CTE中,我们传递了一个单独的
在这里,我们想要获取30,000个
-----------------------------------------------------------------
CHILD_CODE PARENT_CODE CHILD_RANK PARENT_RANK
-----------------------------------------------------------------
1 Null 1 Null
2 1 2 1
3 1 2 1
4 1 2 1
5 2 3 2
6 2 3 2
7 3 3 2
8 5 4 3
我需要获取一个父节点的完整子树。也就是说,如果我输入2作为父节点,它将返回从该节点开始一直到最后一个子节点的所有子节点。
例如... 1
输入 > PARENT_CODE = 2
输出 >
----------------------------------------------
PARENT_CODE CHILD_CODE CHILD_RANK
----------------------------------------------
2 5 3
2 6 3
2 8 4
----------------------------------------------
这里我们使用了 CET,就像
; WITH rekurs AS (
SELECT child_code, child_rank
FROM tbl
WHERE parent_code = 2
UNION ALL
SELECT ch.child_code, ch.child_rank
FROM tbl ch
JOIN rekurs r ON ch.parent_code = r.child_code
)
SELECT 2 AS PARENT_CODE, child_code, child_rank
FROM CTE
我们已经在程序中添加了这个CTE,但是我们正在处理大量的记录,并且遇到了一些问题。在这个CTE中,我们传递了一个单独的
parent_code
,以获取该特定代码的所有子代。在这里,我们想要获取30,000个
parent_code
的所有子代,当我们从C#程序中使用for循环逐个将parent_code
传递给CTE时,耗费的时间太长了。是否有任何方法来解决这个问题?