有没有可能在不使用connect by的情况下创建一个树结构,并使用oracle的分析函数,例如dense_rank?我正在尝试从Oracle HR模式重新创建此查询。
SELECT last_name, employee_id, manager_id, LEVEL
FROM employees
START WITH employee_id = 100
CONNECT BY PRIOR employee_id = manager_id
ORDER SIBLINGS BY last_name;
字符串
1条答案
按热度按时间k5hmc34c1#
您可以使用带有
SEARCH
子句的递归查询来模拟带有ORDER SIBLINGS BY
的分层查询:字符串
其中,对于样本数据:
型
输出:
| 员工_ID|管理员ID|深度| DEPTH |
| --|--|--| ------------ |
| 一百| * 空 *| 一个| 1 |
| 一百零一|一百|二个| 2 |
| 一百零四|一百零一|三个| 3 |
| 一百零五|一百零四|四个| 4 |
| 一百一十|一百零四|四个| 4 |
| 一百零二|一百|二个| 2 |
| 一百零六|一百零二|三个| 3 |
| 一百零九|一百零六|四个| 4 |
| 一百零七|一百零二|三个| 3 |
| 一百零八|一百零七|四个| 4 |
| 一百零三|一百|二个| 2 |
fiddle