gpt4 book ai didi

oracle 递归查询经理下的员工,让经理下一级

转载 作者:行者123 更新时间:2023-12-04 06:18:53 25 4
gpt4 key购买 nike

我有一个员工表,通过employeeid = managerid 展开

我想在我的结果集中有 {employeeid, 1-level-down-from-request}

如此给予

Employeeid - Managerid
Bob - Null
Jill - Bob
John - Bob
Suzy - Jill
Shannon - Jill
Shawn - Jill
Ron - John
Rick - John
Xavier - Shawn

如果我在 Bob 上运行查询,我们会得到
Shannon - Jill
Shawn - Jill
Ron - John
Rick - John
Xavier - Jill

注意 Xavier 去找 Jill,而不是 Shawn,因为 Jill 是 Xavier 的高级经理(比 Bob 低一级)

最佳答案

最简单的方法可能是进行自联接

SELECT employee.employeeId,
employee.managerId
FROM table_name mgr,
table_name subordinate,
table_name employee
WHERE mgr.managerId = subordinate.employeeId
AND subordinate.managerId = employee.managerId
AND mgr.employeeId = 'Bob'

然而,构建分层查询会更有效和更通用。就像是
SELECT *
FROM (SELECT employeeId, managerId, level lvl
FROM table_name
START WITH employeeId = 'Bob'
CONNECT BY prior employeeId = managerId)
WHERE lvl = 3

显然,更改后一个查询以更改您是想要直接报告还是第二级报告或层次结构的其他级别会容易得多。它通常也会更有效率。

关于oracle 递归查询经理下的员工,让经理下一级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com