- create table [maomao365.com]
- (keyId int ,parentId int,
- deptName nvarchar(30))
- insert into [maomao365.com]
- (keyId,parentId,deptName)
- values
- (1,0,'总经办'),
- (2,0,'IT中心'),
- (10,1,'销售部'),
- (11,1,'售后部'),
- (111,11,'售后1'),
- (1111,111,'售后1_1'),
- (12,1,'市场部'),
- (21,2,'运维部'),
- (22,2,'开发部')
- ---例1:获取 售后部keyId=1111所在的顶级部门
- ;
- with testA( [keyId], [parentid],deptName)
- as
- (
- select keyId, parentid,deptName
- from [maomao365.com]
- where keyId = 1111
- union all
- select a.keyId, a.parentid,a.deptName
- from [maomao365.com] a
- inner join testA on a.[keyId] = testA.[parentId] --递归
- )
- select * from testA where parentId=0;
- go
-
- truncate table [maomao365.com]
- drop table [maomao365.com]