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

sélectionnez le niveau de la double connexion par niveau <=4 comment cela fonctionne en interne

Cela crée une requête hiérarchique. Le connect by définit comment marcher du nœud parent à son nœud enfant et au nœud enfant de leurs enfants. Dans ce cas, votre définition de connexion est uniquement lorsque level >= 4 . L'astuce ici est que level est une pseudo-colonne, comme rownum , la condition n'est donc satisfaite que par le nombre inférieur au nombre égal fourni (dans ce cas, 4). Vous pouvez également le faire avec rownum :

select level from dual connect by rownum <= 4; 

Level est utilisé pour compter la profondeur des connexions, donc un parent serait 1, un enfant 2, un enfant de l'enfant 3, etc. Alors pensez-y un rownum pour les requêtes hiérarchiques.