首页 > 代码库 > Oracle connect by

Oracle connect by

level1level2level3
记录1记录1记录1
记录2
记录3
记录2记录1
记录2
记录3
记录3记录1
记录2
记录3
记录2记录1记录1
记录2
记录3
记录2记录1
记录2
记录3
记录3记录1
记录2
记录3
记录3记录1记录1
记录2
记录3
记录2记录1
记录2
记录3
记录3记录1
记录2
记录3
select * from table connect by level <= N;
connect by 当连接条件不能限制记录之间的关系时,每一条记录都可以作为自己或者其他记录的叶子。(这就是Oracle采用了深度优先的算法)
所以得到的记录总数为:
conut(level1) + count(level2) + count(level3);
sample: select * from table connect by level <= 10;(table中有10条记录)
       得到的记录数:10+ 10 *10 + 10 * 10 * 10 = 1110

Oracle connect by