Sql 递归CTE-行数有限

Sql 递归CTE-行数有限,sql,parent,children,recursive-query,Sql,Parent,Children,Recursive Query,我试图在一个非常简单的表上创建一个查询 我有专栏 Organisation, Manager, Superior_Organisation CEO Leadership Team, David, CEO Production Management, Alex, Leadership Team Production Site 1, Francoise, Production Management Production Site 2, Steve, Production Management Pr

我试图在一个非常简单的表上创建一个查询

我有专栏

Organisation, Manager, Superior_Organisation
CEO
Leadership Team, David, CEO 
Production Management, Alex, Leadership Team
Production Site 1, Francoise, Production Management
Production Site 2, Steve, Production Management
Production Site 1 Maintenance, Alan, Production Site 1

由于级别不同,我不知道如何创建一个查询,从一个特定级别开始向我提供所有上级组织

我试过这个密码

declare @i int
select @i = 0
-- keep going until no more rows added
while @@rowcount > 0
begin
select @i = @i + 1
-- Get all children of previous level
SELECT     organisations.Organisation, organisations.Manager,  
organisations.Superior_Organisation
FROM         organisations 
end
但是通过这个查询,我得到了所有信息,我不知道如何只查询上级组织,例如生产现场1维护。可以是1或最多5

一种可能是加入到谈判桌上,但我认为,这还远远不够


我见过一些递归CTE查询,但我不熟悉。非常感谢您的帮助。

这太棒了,速度太快了!我测试过了,它真的很有效。谢谢你,马丁
;WITH organisations AS
(
SELECT 'CEO' AS Organisation, cast(NULL as varchar(50)) AS Manager, cast(NULL as varchar(50)) AS Superior_Organisation UNION ALL
SELECT 'Leadership Team', 'David', 'CEO'  UNION ALL
SELECT 'Production Management', 'Alex', 'Leadership Team' UNION ALL
SELECT 'Production Site 1', 'Francoise', 'Production Management' UNION ALL
SELECT 'Production Site 2', 'Steve', 'Production Management' UNION ALL
SELECT 'Production Site 1 Maintenance', 'Alan', 'Production Site 1'
),
cte As (
SELECT Organisation, Manager, Superior_Organisation
FROM         organisations 
WHERE organisations.Organisation = 'Production Site 1 Maintenance'
UNION ALL
SELECT o.Organisation, o.Manager, o.Superior_Organisation
FROM         organisations o
JOIN cte ON cte.Superior_Organisation = o.Organisation
)
SELECT Organisation, Manager, Superior_Organisation
FROM cte
WHERE Organisation <> 'Production Site 1 Maintenance'