联合所有函数在递归 CTE 中不起作用...?
with CTE_Manager(id,manager,man_id,[Level])
as
(
select id,manager,man_id,1
from manager
where man_id is null
union all
select a.id,a.manager,a.man_id,b.[Level]+1
from manager a
join CTE_Manager b
on b.man_id= a.id
)
select a.manager,ISNULL(a.manager,'SUPER BOSS'),b.Level
from CTE_Manager a
join CTE_Manager b
on a.man_id=b.id
实际上我得到了输出:
我正在检索联合所有功能之前的值。我必须从递归 CTE 中获取所有值。
连接
中的 on 子句是错误的。它应该是 b.id = a.man_id。
您所做的是选择所有没有经理的经理,然后尝试找到他们的经理。当我怀疑你想要的是他们所有的下属。