Oracle
 sql >> Base de données >  >> RDS >> Oracle

SQL récursif et informations à différents niveaux

Oui, il est possible d'utiliser le CONNECT_BY_ROOT opérateur. Par exemple, si vous vouliez le cab du parent votre requête serait :

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

Vous devez utiliser un nouvel opérateur pour chaque colonne que vous souhaitez sélectionner. Vous ne le ferez pas obtenir des informations d'un niveau "différent" de récursivité en utilisant cet opérateur, uniquement à partir de la racine. Si vous en voulez plus, vous devrez utiliser la la factorisation récursive des sous-requêtes.