sqlserver通过递归查找所有下级或上级部门和用户的操作实例

--查找当前用户所在部门的所有下级包括当前部门
with cte as
(
    select Id,Pid,DeptName, 0 as lvl from Department
    where Id = 2
    union all
    select d.Id,d.Pid,d.DeptName,lvl + 1 from cte c inner join Department d
    on c.Id = d.Pid --id 部门编号,PID 上级部门编号
)
select * from cte
查找当前用户所在部门的所有上级包括当前部门
with cte as
(
    select Id,Pid,DeptName, 0 as lvl from Department
    where Id = 2
    union all
    select d.Id,d.Pid,d.DeptName,lvl + 1 from cte c inner join Department d
    on c.Pid= d.Id --id 部门编号,PID 上级部门编号
) select * from cte

 

posted @ 2019-11-22 16:37  博客燕  阅读(2178)  评论(0编辑  收藏  举报