手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
摘要:下面是一个简单的FamilyTree示例:复制代码代码如下:DECLARE@TTTABLE(IDint,Relationvarchar(25...

下面是一个简单的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:

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

希望对您有帮助

Author: Petter Liu

【使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法】相关文章:

重装MS SQL Server 2000前必须彻底删除原安装文件的方法

MSSQL 2005 LOG备份webshell的方法

SQL2008 附加数据库提示5120错误解决方法

SQL Server 2005 数据库复制详细介绍

SQL SERVER清除日志的方法

SQL Server日志过大会影响查询结果

SQL Server 2008 R2安装配置方法图文教程

SQL2008中 阻止保存要求重新创建表的更改 的解决方法

SQL2005 存储过程解密方法

SQL Server 2008 数据库中创建只读用户的方法

精品推荐
分类导航