Oracle connect by

level1 level2 level3
记录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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。