• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Uncho
大自然的搬运工
博客园    首页    新随笔    联系   管理    订阅  订阅
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
posted on 2014-10-29 10:23  Unco  阅读(328)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3