栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 数据库 > SQL Server

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

SQL Server 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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


希望对您有帮助

Author: Petter Liu

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/172621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号