START WITH . . . CONNECT BY . . .子句常用来实现SQL的层次查询.刚才看到一个蛮有趣的帖子,楼主用了数学方法深入研究了connect by
原帖子如下。

对于connect by,现在大多数人已经很熟悉了
connect by中的条件就表示了父子之间的连接关系
比如 connect by id=prior pid

但如果connect by中的条件没有表示记录之间的父子关系
那会出现什么情况?
常见的,connect by会在构造序列的时候使用
用select rownum from dual connect by rownum<xxx 代替早期版本的 select rownum from all_objects where rownum <xxx

我们注意到,dual是一个只有一条记录的表,如果表有多条记录,将会怎样?

下面开始实验
环境:windows xp sp2 + Oracle 9208
(10.1版本connect by有问题)

无需多说,我们很快可以找到其中的规律,假设表中有N条记录
则记F(N,l)为 select id,level from t connect by level<l 的结果集数目
那么,
F(N,1)=N
F(N,l) = F(N,l-1)*N+N

于是可以总结出
F(N,l)=∑power(N,p), p取值为[1,l)

要解释,也很容易
当连接条件不能限制记录之间的关系时
每一条记录都可以作为自己或者其他记录的叶子
如下所示:
A 1
A 2
A 3
B 3
C 3
B 2
A 3
B 3
C 3
C 2
A 3
B 3
C 3

在这里,我们看到的是
Oracle采用了深度优先的算法

转摘自:http://www.cnblogs.com/zeromyth/archive/2009/09/07/1561948.html

start with -- conect by相关推荐

  1. c 服务器和android客户端,通过TCP与c + +(套接字服务器)conect android(套接字客户端)...

    我有一个实现在大学项目中做,我不知道如何avchive它!我的问题就像标题所说的那样,通过套接字将C++与android连接起来.通过TCP与c + +(套接字服务器)conect android(套 ...

  2. linux shell中的kill(1) , conect(2) , select(2)代表什么【转】

    转自:http://blog.csdn.net/whm2300/article/details/17516025 看<<unix高级程序设计>> 等书, 常会看到 kill(1 ...

  3. socket函数conect返回值为115,如何解决呢?

    我知道返回值的意思是 115EINPROGRESS +Operationnow in progress 但是怎么消除呢? 可以这样消除:if (0 > nret)  {   if (EALREA ...

  4. 网络编程——listen、conect、inet_pton等网络编程函数详解

    前言 自己在学习网络编程的所思所感所悟,记录于此,如果还有幸能帮助到您,是我的荣幸!很多网络编程的函数都没有见过也忘记了他的头文件,怎么办?在linux上使用man手册查函数即可,windows查ms ...

  5. Navicat Cannot conect to MySQL server 10060

    可能原因:远端防火墙没有开放 3306 端口(user 表中 root 用户的 host 为 % 时) 解决步骤: 2.1 远端使用 firewall-cmd --list-port 查看开放的端口列 ...

  6. kafka学习--使用kafka conect操作kafka connector

    1. 配置kafka connectors kafka connectors配置是简单的键值映射.对于独立模式,这些在属性文件中定义,并传递到命令行上的kafka Connect进程.在分布式模式下, ...

  7. 2-3 建立简易TCP服务端、客户端【socket server/client】【socket、bind、listen、accept、send、closesocket】【conect、recv】

    2-3 建立简易TCP服务端.客户端 文章目录 2-3 建立简易TCP服务端.客户端 0-前言 1-服务端简易功能 2-客户端简易功能 3-代码逻辑 4-服务端 4-1 建立socket 4-2 绑定 ...

  8. Linux6版本系统搭建Open***远程访问

    前言: open***是一个***工具,用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件,提供证书验证功能,也支持用户名密码认证登录方式,当然也支持两者合一 ...

  9. 双宋喜结连理过程可以通过python爬虫Aispider 几行代码就能搞定!

    爬虫框架AISPIDER 是一种轻量级的爬虫框架,封装了非常多的方法,只需简单几步操作即可开始工作,主要的爬虫逻辑还是需要自行编写. 你只需要把你要请求的网址构造成框架规定的格式,然后放入到工作队列中 ...

最新文章

  1. 如果在CSDN博文编辑状态下获得博文最终网络链接?
  2. 【转】txt中导入数据,matlab画图问题
  3. shiro的简单入门使用
  4. 进程间通信-system-v
  5. (转)扩展KMP算法模板
  6. 第五节:EF Core中的三类事务(SaveChanges、DbContextTransaction、TransactionScope)
  7. node后台截图 box-shadow无效-解决
  8. uml活动图 各个功能的操作流程和分支_UML建模更好的表达产品逻辑
  9. 《『若水新闻』客户端开发教程》——11.代码编码(3)
  10. python爬虫教程-有什么好的python3爬虫入门教程或书籍吗?
  11. c语言 统计数量用count_C语言编程中统计输入的行数以及单词个数的方法
  12. C# 线程安全的单例模式
  13. Spark 计算人员三度关系
  14. matlab如何设全局变量,请问MATLAB中如何修改全局变量
  15. 基于智慧灯杆(路灯)的新型智慧城市物联网系统集成解决方案
  16. vue项目px自动转rem适用于pc端
  17. kubuntu我显示服务器,还是不行!kubuntu到底怎么配置IP才能上网啊?[已经解决!]...
  18. MATLAB课设代做在哪儿找,代写Grid World作业、代做CID留学生作业、代写Matlab课程设计、代做Matlab编程实验作业...
  19. 《游戏设计快乐之道(第2版)》一第2章 大脑如何运作
  20. Rewritecond介绍

热门文章

  1. PCB 光刻胶分为常用干膜光刻胶、湿膜光刻胶和阻焊油墨
  2. TLS1.3抓包分析(2)——ServerHello
  3. xfs文件系统修复方法
  4. pyqt5写代码流程
  5. n12.php解密,《信长之野望12革新》param.n12文件修改的一点翻译
  6. 三电平SVPWM(小六边形)
  7. imagenet2012数据集 迅雷下载
  8. 安装 MySQL 2012 (windows 版)
  9. React 使用webpack打包
  10. ubuntu 11.04安装极点五笔