Tsql T-SQL中的递归搜索
我有一个表,它将一个位置链接到一个位置。这是经理关系 所以我们会的Tsql T-SQL中的递归搜索,tsql,Tsql,我有一个表,它将一个位置链接到一个位置。这是经理关系 所以我们会的 Position| Line Manager ----------------------------------- Job 1 | Job 3 Job 2 | Job 3 Job 3 | Job 8 Job 4 | Job 6 Job 5 | Job 6 Job 6 | Job 4 Job 7 | Job 4 Job 8 | Job 9 Job 9 | Job 10 Job 10 | NU
Position| Line Manager
-----------------------------------
Job 1 | Job 3
Job 2 | Job 3
Job 3 | Job 8
Job 4 | Job 6
Job 5 | Job 6
Job 6 | Job 4
Job 7 | Job 4
Job 8 | Job 9
Job 9 | Job 10
Job 10 | NULL
所以我要寻找的是一个查询,当Line Manager=job 8时,它显示job 3、job 2和job 1
当你查找作业8时,它会看到作业3是它下面的位置,然后它会查找作业3是谁的直线经理,然后再查找这些作业是直线经理的,依此类推,直到它到达链的末端
然后,我会将这些工作与人们联系起来,以获取详细信息。因此,它沿着工作层次向下,不仅显示了直接在其下的每个人,还显示了直接在其下的所有人,以此类推
我正在做一顿狗餐来解释它,而我在谷歌方面运气不太好。这种递归搜索在SQL中可行吗
谢谢你的帮助和指点 尝试使用CTE,如下所示:
with CTE as
(
select Position, LineManager
from Positions
where LineManager = 8
union all
select child.Position,child.LineManager
from Positions child
join
CTE parent on child.LineManager = parent.Position
)
select * from CTE
尝试搜索递归CTE(公共表表达式)。这很好,似乎正是我想要的。谢谢