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.