gpt4 book ai didi

SQL递归查询

转载 作者:行者123 更新时间:2023-12-04 13:59:03 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




11 年前关闭。




Possible Duplicate:
Recursive function in sql server 2005?



如何对表执行迭代查询?我有一个简单的表,其中包括:
KeyField, childID, parentID

从 childID 开始,我想拉出 parentID,然后再次查询以查看该父级(现在是子级)是否有自己的父级,在整个层次结构中向上工作,我该怎么做?

Microsoft SQL Server,版本号 09.00.3042

最佳答案

在 SQL Server 2005 及更高版本中,最好对此类查询使用递归 CTE(公用表表达式)。 (在 SQL 2000 及更早版本中,您只能使用递归存储过程)。

类似于以下内容是您所需要的:

WITH ParentChildRels (ParentId, ChildId, KeyField, HierarchyLevel) AS
(
-- Base case
SELECT
ParentId,
ChildId,
KeyField,
1 as HierarchyLevel
FROM Records
WHERE ChildId = @ChildId

UNION ALL

-- Recursive step
SELECT
r.ParentId,
r.ChildId,
r.KeyField,
pr.HierarchyLevel + 1 AS HierarchyLevel
FROM Records r
INNER JOIN ParentChildRels pr ON
r.ParentId = pr.ParentId
)

SELECT *
FROM ParentChildRels
ORDER BY HierarchyLevel, ParentId, ChildId, KeyField

关于SQL递归查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com