首页 > 数据库技术 > 详细

sqlserver的CTE实现递归查询

时间:2017-05-18 18:16:14      阅读:291      评论:0      收藏:0      [点我收藏+]
--递归查询
IF OBJECT_ID(DiGui,U) IS NOT NULL 
    DROP TABLE DiGui
CREATE TABLE DiGui(
Id VARCHAR(50),
ParentId VARCHAR(50)
)
INSERT INTO dbo.DiGui( Id, ParentId )
select 第三层,第一层
union select 第二层,第一层
union select 第四层,第一层
union select 第十层,第二层
union select 第九层,第二层
union select 第八层,第五层
union select 第二十层,第四层
union select 第二十二层,第四层
union select 第三十层,第二十层
union select 第三十二层,第二十层
union select 第四十层,第三十层
union select 第四十二层,第三十层
union select 第五十层,第四十层
union select 第五十二层,第四十层
union select 第八十层,第五十层
union select 第八十二层,第五十层
union select 第一百层,第九十层
union select 第一百零二层,第九十层

;with temp
as
(
select Id, parentid
from DiGui
where [parentid] = 第一层
union all
select a.Id, a.parentid
from DiGui a
inner join temp on a.[parentid] = temp.[Id]
)
select * from temp

 

sqlserver的CTE实现递归查询

原文:http://www.cnblogs.com/xiaozhi1236/p/6874848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!