递归SQL和不同级别的信息

时间:2014-08-27 16:23:24

标签: sql oracle connect-by

是否可以在同一查询中显示有关不同递归水平的信息?

select LEVEL, ae2.CAB, ae2.NIVEAU, ae2.ENTITE, ae2.ENTITE_PARENT, ae2.libelle
from my_table ae2
where ae2.NIVEAU = 2
start with ae2.cab = 'XXX'
connect by prior ae2.entite_parent = ae2.entite

通过这个查询,我有(比方说)关于根'XXX'以上实体的4个级别的信息

是否可以同时显示根信息?

1 个答案:

答案 0 :(得分:1)

是的,可以使用CONNECT_BY_ROOT运算符。例如,如果您希望父查询的cab为:

select connect_by_root cab
      , level, cab, niveau, entite, entite_parent, libelle
   from my_table
  where niveau = 2
  start with cab = 'XXX'
connect by prior entite_parent = entite

您必须为要选择的每列使用新运算符。您赢得从"不同的"获取信息。使用此运算符的递归级别,仅来自根。如果您想要更多,则必须使用recursive subquery factoring.