微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

下面是一个简单的Family Tree 示例:
<div class="codetitle"><a style="CURSOR: pointer" data="33678" class="copybut" id="copybut33678" onclick="doCopy('code33678')"> 代码如下:

<div class="codebody" id="code33678">
DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int)
INSERT @TT SELECT 1,' Great GrandFather','Thomas Bishop',null UNION ALL
SELECT 2,'Grand Mom','Elian Thomas Wilson',1 UNION ALL
SELECT 3,'Dad','James Wilson',2 UNION ALL
SELECT 4,'Uncle','Michael Wilson',2 UNION ALL
SELECT 5,'Aunt','Nancy Manor',2 UNION ALL
SELECT 6,'Grand Uncle','Michael Bishop',1 UNION ALL
SELECT 7,'brother','David James Wilson',3 UNION ALL
SELECT 8,'Sister','Michelle Clark',3 UNION ALL
SELECT 9,'Robert James Wilson',3 UNION ALL
SELECT 10,'Me','Steve James Wilson',3 ----------Query---------------------------------------
;WITH FamilyTree
AS(
SELECT ,CAST(NULL AS VARCHAR(25)) AS ParentName,0 AS Generation FROM @TT
WHERE ParentID IS NULL
UNION ALL
SELECT Fam.
,FamilyTree.Name AS ParentName,Generation + 1 FROM @TT AS Fam
INNER JOIN FamilyTree ON Fam.ParentID = FamilyTree.ID
)SELECT * FROM FamilyTree

Output:

query_result
希望对您有帮助 Author: Petter Liu

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐