CTE 递归举例
2
--
递归CTE
3
4
Use
tempdb5
Go
6

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
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
Dept31
Where
[
name
]
=
@DeptName
32
Union
All
33
Select
A.
*
34
From
Dept A,CTE_Depts B35
Where
A.Parent_Id
=
B.Id36
)37

38
Select
*
From
CTE_Depts
