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

老虎和表嫂

老虎和表嫂

2016-02-19 09:22

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的使用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:

query_result
希望对您有帮助

Author: Petter Liu

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法

SQLserver2008使用表达式递归查询

编程语言 网络编程
SQLserver2008使用表达式递归查询

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQLSERVER2005 中树形数据的递归查询

编程语言 网络编程
SQLSERVER2005 中树形数据的递归查询

SQL Server2005数据库查询中使用CTE

SQLServer
SQL Server2005数据库查询中使用CTE

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQLServer2005 的查询独占模拟

编程语言 网络编程
SQLServer2005 的查询独占模拟

bbs树型结构的实现方法(二)

ASP
bbs树型结构的实现方法(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

shp2sqlserver 用法简析

shp2sqlserver 用法简析

对有insert触发器表取IDENTITY值时发现的问题

对有insert触发器表取IDENTITY值时发现的问题
下拉加载更多内容 ↓