【发布时间】:2017-03-13 17:08:36
【问题描述】:
如果我在这样的表中表示分层数据:
team_id team_name parent_id
1 Sales (null)
2 Executives (null)
3 EMEA Sales 1
4 APAC Sales 1
5 UK Sales 3
给定一个team_id,选择通向根级别的所有team_id 的SQL 是什么?我使用的是 Oracle 11.2。
例如,给定 team_id 5,返回的 team_ids 应该是:(5,3,1)
或者,给定 team_id 4,那么输出应该是:(4,1)
向下遍历树枝,显示数据层次结构相当简单,使用类似的东西:
SELECT team_id, team_name, parent_id
FROM teams
START WITH team_name = 'Sales'
CONNECT BY PRIOR team_id = parent_id
;
我正在寻找相反的东西 - 从特定节点向上遍历树枝。
请注意,这里的示例数据只有 3 个级别,但我正在寻找任意级别的解决方案。
【问题讨论】:
-
阅读 CONNECT BY 。请显示示例预期输出。
-
@OldProgrammer 确实我很熟悉 CONNECT BY。从根节点遍历 down 树的分支是相当简单的,但我想遍历 up 树,只向上遍历一个分支
-
先连接。
标签: sql oracle hierarchical-data