SQLSERVER 2005 递归查询

SQLSERVER 2005 递归查询,第1张

概述项目中有用户组表UserGroup如下: 其中PID表示当前组的上级组 表数据如下: 现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,SQL如下: --查询子节点with RTD1 as( select id ,pid from UserGroup ), RTD2 as( select * from RTD1 where id=6 union a

项目中有用户组表UserGroup如下:

其中PID表示当前组的上级组

表数据如下:

现在想查询出顶级组[没有上级组叫顶级组]A1组的所有子孙组ID,sql如下:

--查询子节点with 	RTD1 as(		select ID,pID from UserGroup	),RTD2 as(		select * from RTD1 where ID=6		union all		select RTD1.* from RTD2 inner join RTD1 		on RTD2.ID=RTD1.PID	)select * from RTD2


查询结果如下:

ID          pID
----------- -----------
6           NulL
17          6
18          6
20          6
21          20
22          20
23          20
24          20
29          20
25          23
26          23
28          26
27          25

(13 行受影响)

 

现在想查询出A1-B3-C3-D2组的所有上级组ID,sql如下:

--查询父节点with 	RTU1 as(		select ID,RTU2 as(		select * from RTU1 where ID=26		union all		select RTU1.* from RTU2 inner join RTU1 		--on myT2.ID=myT.PID		on RTU2.PID=RTU1.ID	)select * from RTU2


查询结果如下:

ID          pID
----------- -----------
26          23
23          20
20          6
6           NulL

(4 行受影响)

总结

以上是内存溢出为你收集整理的SQLSERVER 2005 递归查询全部内容,希望文章能够帮你解决SQLSERVER 2005 递归查询所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存