2014-08-27 4 views
-2

Можно ли отображать в том же запросе информацию о разном уровне рекурсии?Рекурсивный SQL и информация на другом уровне

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 

С помощью этого запроса у меня есть (скажем) 4 уровней информации о сущности выше корня «XXX»

Можно ли отображать корневую информацию в то же самое время?

ответ

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.

Смежные вопросы