sqlserver的CTE实现递归查询

Posted 小志1236

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver的CTE实现递归查询相关的知识,希望对你有一定的参考价值。

--递归查询
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实现递归查询的主要内容,如果未能解决你的问题,请参考以下文章

SqlServer :实现树形结构递归查询(无限极分类)

SQL Server CTE 递归查询全解

Sql ServerSQL SERVER 递归查询

Presto SQL 是不是像 SQL Server 一样支持使用 CTE 进行递归查询?例如员工等级

sql server使用cte递归查询获取树形的父节点/子节点

将 PostgreSQL 递归 CTE 转换为 SQL Server