Oracle将树遍历到特定节点

时间:2017-09-22 03:36:11

标签: sql oracle hierarchical-data

如何将树从某些子节点遍历到Oracle中的特定节点(而不是根节点)?

我们输入:特定节点A,列表子节点。

预期输出:从节点A到输入列表中A的所有子节点的子树。

我们已经写了一些查询,但想知道我们是否可以有更好的方法来做到这一点。

感谢您的帮助!

A
name count
ABC 10
DEF 10
GHI 20

B
name count
ABC 20
GHI 30
XYZ 10

RESULT
name count
ABC -10
DEF 10
GHI -10
XYZ -10

1 个答案:

答案 0 :(得分:1)

使用:

SELECT distinct * 
FROM table_name
START WITH code IN ('1112', '1114', '1115', '221')
CONNECT BY PRIOR code_ct = code and prior code <> '11'
order by 1;

由于INTERSECT运算符从最终结果集中删除了重复项,因此必须使用DISTINCT才能获得与具有intersect的查询相同的结果。