Oracle Hierarchical Query获取所有Childrens All Level

时间:2015-04-28 16:44:31

标签: oracle oracle-sqldeveloper

我有一个表格,其中我有DataID和ParentID列,所以对于一个父根我可以有孩子,那些孩子可以有更多的孩子等等 结构类似

Root
 Child1
    A
    B
 Child2
    C
    D

我可以使用分层查询来收集root及其所有子级,无论级别有多深

1 个答案:

答案 0 :(得分:1)

您似乎要求提供一个非常简单的分层查询as described in the documentation,在其examples和其他许多地方展示。

如果您想要问题中显示的输出,那么您可以执行以下操作:

select lpad(' ', level - 1, ' ') || dataid as hierarchy
from your_table
start with parentid is null
connect by prior dataid = parentid;

HIERARCHY                                                                      
--------------------------------------------------------------------------------
Root                                                                            
 Child1                                                                         
  A                                                                             
  B                                                                             
 Child2                                                                         
  C                                                                             
  D                                                                             

lpad使用查询级别将值缩进适当数量的空格。