源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-06-22 09:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
下面是一个简单的Family Tree 示例:
[u]复制代码[/u] 代码如下:
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, 'Brother', '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: [img]http://files.jb51.net/upload/201110/20111031233607220.png[/img] 希望对您有帮助 Author: Petter Liu
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部