如何通过工作连接生成数字

时间:2015-04-15 09:53:25

标签: sql oracle

对于文档,我知道connect by可以与prior一起用于分层查询。但我常常看到它用于生成数字:

SQL> select level from dual connect by level < 10;
 LEVEL

----------

     1
     2
     3
     4
     5
     6
     7
     8
     9

  9 rows selected

SQL>

它在这里如何运作?我的意思是它如何生成1,然后是2,依此类推。我在这里看不到层次结构,connect by未与prior一起使用。这让我很困惑。

1 个答案:

答案 0 :(得分:1)

查询执行线性递归调用。

Level是由递归生成的伪列,它告诉当前迭代的递归深度。 connect by子句不需要引用previous,它就像任何其他的条件告诉'如果这行的级别小于10,将它与结果集联合'