Isso cria uma consulta hierárquica. O
connect by
define como caminhar do nó pai para seu nó filho e para o nó filho de seus filhos. Neste caso, sua definição de conexão é somente quando level >= 4
. O truque aqui é que level
é uma pseudo coluna, como rownum
, então a condição é satisfeita apenas pelo número menor que igual fornecido (neste caso 4). Você também pode fazer isso com rownum:select level from dual connect by rownum <= 4;
Level
é usado para contar a profundidade das conexões, então um pai seria 1, um filho 2, um filho do filho 3, etc. Pense nisso como um rownum para consultas hierárquicas.