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
时间: 2024-11-09 01:41:36

Oracle connect by的相关文章

Oracle connect resource权限

connect resource权限:grant connect,resource to user;后用户包括的权限:CONNECT角色: --是授予最终用户的典型权利,最基本的ALTER SESSION --修改会话CREATE CLUSTER --建立聚簇CREATE DATABASE LINK --建立数据库链接CREATE SEQUENCE --建立序列CREATE SESSION --建立会话CREATE SYNONYM --建立同义词CREATE VIEW --建立视图RESOURC

Oracle “CONNECT BY” (层级递归查询)

Oracle "CONNECT BY"是层次查询子句,一般用于树状或者层次结果集的查询.其语法是: ? 1 2 [ START WITH condition ] CONNECT BY [ NOCYCLE ] condition The start with .. connect by clause can be used to select data that has a hierarchical relationship (usually some sort of parent-&g

Oracle “CONNECT BY” 使用

Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询.其语法是: [ START WITH condition ] CONNECT BY [ NOCYCLE ] condition 说明: 1. START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点. 2. 当分层查询中存在上下层互为父子节点的情况时,会返回ORA-01436错误.此时,需要在connect by后面加上NOCYCLE关键字.同时,可用connec

Oracle connect by 树查询之三(超详细)

查找员工编号为7369的领导: 1 SELECT LEVEL,E.* FROM EMP E CONNECT BY PRIOR E.MGR = E.EMPNO START WITH E.EMPNO = 78762 ORDER BY LEVEL DESC "start with" -- this identifies all LEVEL=1 nodes in the tree "connect by" -- describes how to walk from the

Oracle CONNECT by 简单用法

Oracle查询层级的  一个表里 通过一个parentid连接 select * FROM A_MERIATILA start with id=520 CONNECT by prior id=PARENTID order by id;

oracle connect by用法篇 (转)

1.基本语法 select * from table [start with condition1] connect by [prior] id=parentid 1 2 1 2 一般用来查找存在父子关系的数据,也就是树形结构的数据:其返还的数据也能够明确的区分出每一层的数据. start with condition1 是用来限制第一层的数据,或者叫根节点数据:以这部分数据为基础来查找第二层数据,然后以第二层数据查找第三层数据以此类推. connect by [prior] id=parent

oracle connect by 用法

Oracle中可以通过START WITH . . . CONNECT BY . . .子句来实现SQL的层次查询,即递归查询 例如: select level||'月' 月份 from dual connect by level < 13; 或者 select rownum||'月' 月份 from dual connect by rownum < 13; 可以递归查询出12个月 1    1月 2    2月 3    3月 4    4月 5    5月 6    6月 7    7月

oracle connect by用法篇

1.基本语法 select * from table [start with condition1] connect by [prior] id=parentid 一般用来查找存在父子关系的数据,也就是树形结构的数据:其返还的数据也能够明确的区分出每一层的数据. start with condition1 是用来限制第一层的数据,或者叫根节点数据:以这部分数据为基础来查找第二层数据,然后以第二层数据查找第三层数据以此类推. connect by [prior] id=parentid 这部分是用

【转】oracle CONNECT BY PRIOR叶子节点查找根节点

SELECT TRANS_ID FROM TRANS_INST WHERE connect_by_isleaf=1 START WITH TRANS_ID =480242 CONNECT BY PRIOR UP_TRANS_ID = TRANS_ID; 说明: 表TRANS_INST(TRANS_ID,UP_TRANS_ID) 480242表示树的任何一个节点 TRANS_ID子节点 UP_TRANS_ID父节点