首页 > 数据库技术 > 详细

Oracle connect by

时间:2014-10-29 12:32:58      阅读:153      评论:0      收藏:0      [点我收藏+]

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

Oracle connect by

原文:http://www.cnblogs.com/Uncho/p/4058789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!