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. 吉利蔚来造手机,小米造车
  2. UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP
  3. Android 关于获取摄像头帧数据解码
  4. 使用IntentService给自己的Android应用写一个文件下载器。
  5. ring0 ring3 kernel driver
  6. HanLP1.5.2 -python使用介绍
  7. 女陔说你不懂我, 到底什么意思
  8. python安装os模块_centeros安装python3过程
  9. 拨号720错误解决记.txt
  10. python转义字符与原字符
  11. 室内定位技术研发简介
  12. 谭浩强C语言程序设计(1-3章代码学习)
  13. 华为服务器gpu芯片怎么样,GPU服务器怎么样
  14. wordpress采集插件支持任意wordpress主题
  15. 2014年最新720多套Android源码2.0GB免费一次性打包下载
  16. ibm刀片服务器虚拟化,IBM刀片服务器虚拟化方案
  17. MC1.12.2开服教程
  18. springMVC笔记系列(22)——Json各类操作在springMVC中的实现
  19. 方舟服务器傻瓜开服教程(含教程以及所有开服常见问题解决办法)
  20. mac版本的eclipse安装springboot开发插件(STS)

热门文章

  1. Git 码云 使用
  2. Amlogic A311D 驱动分析系列(一)-看门狗驱动分析
  3. Grid++Report条码扫不出
  4. wireshark初步认识
  5. katalon studio录制WebUI自动化脚本
  6. String.Format将人民币符号改成美元符号{0:C}
  7. 【Graph】NetworkX官方基础教程:图的生成与相关操作
  8. 【算法基础】奇数下标都是奇数,偶数下标都是偶数
  9. Select 实现网络聊天室功能 (服务器端)
  10. 如何快速合并PDF文件?