【发布时间】:2017-05-28 18:18:28
【问题描述】:
我有以下员工表,EmpID 和 ManagerID 之间存在外键关系。
员工表
期望的输出
我希望能够以由> 分隔的分层顺序显示员工姓名,从最高管理者到底层,其中 EmpID 是层次结构底部员工的 ID。
我知道我可以通过使用以下 SQL 将表连接到自身来获得所需的输出。
select e1.empID, e1.DeptID, e2.Name + ' > ' + e1.Name as Description
from employee e1
left join employee e2
on e1.managerId = e2.empId
我也知道我可以在上述查询中添加更多左连接以获得所需的输出。但是层次结构的深度没有限制,所以我想它需要动态完成。
任何帮助将不胜感激
【问题讨论】:
-
也许你应该考虑使用
plsql循环 :) Something like here
标签: sql tsql join sql-server-2012 self-join