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(公共表表达式)。这很好,似乎正是我想要的。谢谢