我想从具有以下定义的表中获取下面的Hierarchical / Tree数据。
Tree Table:
"""""""""""
Id |ParentId
"""""""""""
Work1|null
Work2|Work1
Work3|Work2
...
必需的查询结果数据(不需要选项卡) - 如果我选择'Work1',我应该完成其根目录下的ID。如果我选择'Work2',那么我也应该在其根之上和之下完成ID。
> Work1
----------
> Work2
----------
> Work3
---------
我使用了以下查询,但它给了我重复的记录。
select Id from TreeTable start with Id in ('Work1','Work2') connect by nocycle Parentid=prior Id or Id = prior Parentid
注意:我希望以 SINGLE QUERY (优化)方式获取数据
谢谢和问候, PV。
答案 0 :(得分:2)
SELECT id
FROM q
START WITH
id IN ('Work1', 'Work2')
CONNECT BY
parent = PRIOR id
AND id NOT IN ('Work1', 'Work2')
这个条件:
AND id NOT IN ('Work1', 'Work2')
将切断已使用START WITH
选择的分支。