我知道级别使用以及分层查询,但我无法理解如何分析它:
(select level from dual connect by level<=4)
查询在内部工作以及如何生成数字。
为了生成数字,我有另一种方式:
select r from (select rownum r from all_objects) e where r<=10
它将生成前10个数字。但我无法理解内部的水平如何。
请解释原因!
答案 0 :(得分:0)
这构建了分层查询。 connect by
定义了如何从父节点走到其子节点及其子节点。在这种情况下,您的连接定义仅在level >= 4
时。这里的诀窍是level
是伪列,如rownum
,所以条件只能通过提供的小于等数来满足(在这种情况下为4)。您也可以使用rownum执行此操作:
select level from dual connect by rownum <= 4;
Level
用于计算连接的深度,因此父级将为1,子级为2,子级为3的子级等。因此,将其视为分层查询的rownum。