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 -- 递归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