我正在尝试在一个非常简单的表(组织)上创建一个查询
我有专栏
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 查询,但我并不熟悉。所以感谢帮助。