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