CTE 递归举例
1
2
--递归CTE
3
4
Use tempdb
5
Go
6
7
Create Table Dept(
8
Id Int primary key,
9
Parent_Id int,
10
[name] nvarchar(50)
11
)
12
13
Insert Dept
14
Select 0,0,N'<All>' Union All
15
Select 1,0,N'财务部' Union All
16
Select 2,0,N'行政部' Union All
17
Select 3,0,N'业务部' Union All
18
Select 4,3,N'软件开发' Union All
19
Select 5,3,N'软件测试'
20
Go
21
22
--查询所有部门
23
Declare @DeptName nvarchar(50)
24
Set @DeptName = '业务部'
25
26
;With
27
CTE_Depts as
28
(
29
--定位点成员
30
Select * From Dept
31
Where [name]=@DeptName
32
Union All
33
Select A.*
34
From Dept A,CTE_Depts B
35
Where A.Parent_Id = B.Id
36
)
37
38
Select * From CTE_Depts

2
--递归CTE3

4
Use tempdb5
Go6

7
Create Table Dept(8
Id Int primary key,9
Parent_Id int,10
[name] nvarchar(50)11
)12

13
Insert Dept14
Select 0,0,N'<All>' Union All15
Select 1,0,N'财务部' Union All16
Select 2,0,N'行政部' Union All17
Select 3,0,N'业务部' Union All18
Select 4,3,N'软件开发' Union All19
Select 5,3,N'软件测试' 20
Go21

22
--查询所有部门23
Declare @DeptName nvarchar(50)24
Set @DeptName = '业务部'25

26
;With27
CTE_Depts as28
(29
--定位点成员30
Select * From Dept31
Where [name]=@DeptName32
Union All33
Select A.* 34
From Dept A,CTE_Depts B35
Where A.Parent_Id = B.Id36
)37

38
Select * From CTE_Depts
欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122
做人要厚道,转载请注明出处!
浙公网安备 33010602011771号