主页 > 知识库 > 使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

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

热门标签:北京智能外呼系统供应商家 高德地图标注电话怎么没了 中国地图标注省份用什么符号 孝感销售电销机器人厂家 江西稳定外呼系统供应商 智能电销机器人教育 无锡梁溪公司怎样申请400电话 电话机器人录音师薪资 奥维地图标注字体大小修改
下面是一个简单的Family Tree 示例:
复制代码 代码如下:

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:

query_result
希望对您有帮助

Author: Petter Liu

您可能感兴趣的文章:
  • 使用SqlServer CTE递归查询处理树、图和层次结构
  • 在sqlserver中如何使用CTE解决复杂查询问题
  • SQLSERVER2008中CTE的Split与CLR的性能比较
  • SQLSERVER2005 中树形数据的递归查询
  • sqlserver另类非递归的无限级分类(存储过程版)
  • SqlServer使用公用表表达式(CTE)实现无限级树形构建

标签:泰州 海北 那曲 阜阳 通化 临沧 齐齐哈尔 荆州

巨人网络通讯声明:本文标题《使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法》,本文关键词  使用,SQLSERVER,2005,2008,递归,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法》相关的同类信息!
  • 本页收集关于使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法的相关信息资讯供网民参考!
  • 推荐文章