connect by 用法小议
来源:互联网 发布:文泰刻绘2002解密软件 编辑:程序博客网 时间:2024/06/05 18:56
生成连续序列或递归上下级树形结构时常用CONNECT BY来实现
1、CONNECT BY 的执行顺序
语法:[start with ...][where .....] connect by ...
先执行START WITH 后执行CONNECT BY,最后执行WHERE子句
2、生成序列注意事项,多用LEVEL,而少用ROWNUM,有时ROWNUM会引起问题
SQL> select level from dual connect by level<5;
LEVEL
----------
1
2
3
4
SQL> select rownum from dual connect by rownum<5;
ROWNUM
----------
1
2
3
4
当查询表中只有一条记录时,两种用法是相同的
但是当查询表中有多于一条记录时,两则的差异还是蛮大的
SQL> select * from t;
N
-
A
B
SQL> select rownum,level,n from t connect by level<=1;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 1 B
SQL> select rownum,level,n from t connect by level<=2;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 2 A
3 2 B
4 1 B
5 2 A
6 2 B
已选择6行。
SQL> select rownum,level,n from t connect by level<=3;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 2 A
3 3 A
4 3 B
5 2 B
6 3 A
7 3 B
8 1 B
9 2 A
10 3 A
11 3 B
12 2 B
13 3 A
14 3 B
已选择14行。
SQL> select rownum,level,n from t connect by rownum<=1;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 1 B
SQL> select rownum,level,n from t connect by rownum<=2;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 2 A
3 1 B
SQL> select rownum,level,n from t connect by rownum<=3;
ROWNUM LEVEL N
---------- ---------- -
1 1 A
2 2 A
3 3 A
4 1 B
假设表记录为N,层数为M
使用LEVEL获取的记录数为:N^M+N^(M-1)+...+N
使用ROWNUM获取的记录数为:M+N-1
- connect by 用法小议
- connect by的用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- Oracle Connect By用法
- connect by用法
- oracle connect by用法
- connect by 用法
- CONNECT BY用法总结
- oracle connect by用法
- Oracle Connect By用法
- oracle connect by 用法
- mysql配置
- ORA-00979:不是GROUP BY表达式
- Faster_rcnn训练自己的数据集(2)
- 树形DP之王 balabalabala
- phpMyAdmin创建数据库无权限解决方案
- connect by 用法小议
- 值得实践的开源库
- ds解题报告
- [struts2]struts2中action接收参数的方法
- Java基本语法
- 关于作者与本站
- Java4android学习笔记25
- 基于会话的临时表和基于事务的临时表浅析
- 洛谷P1106 删数问题