oracle树中prior的用法
来源:互联网 发布:保健品网络营销策划 编辑:程序博客网 时间:2024/06/05 00:35
数据说明一切:
create table dept(deptno number,deptname varchar2(20),mgrno number);
insert into dept values (1, '总公司', null);
insert into dept values (2, '浙江分公司', 1);
insert into dept values (3, '杭州分公司', 2);
commit;
select t.* from dept t;
DEPTNO DEPTNAME MGRNO
1 1 总公司
2 2 浙江分公司 1
3 3 杭州分公司 2
select * from dept connect by prior mgrno=deptno ; --以子结点为开始向根结点遍历
DEPTNO DEPTNAME MGRNO
1 1 总公司
2 2 浙江分公司 1
3 1 总公司
4 3 杭州分公司 2
5 2 浙江分公司 1
6 1 总公司
select * from dept start with mgrno=1 connect by prior mgrno=deptno ---以子结点为开始且开始为1,的遍历
DEPTNO DEPTNAME MGRNO
1 2 浙江分公司 1
2 1 总公司
-------------------------------------------------------------------------------------------------------------
select from dept connect by prior deptno= mgrno
DEPTNO DEPTNAME MGRNO
1 2 浙江分公司 1
2 3 杭州分公司 2
3 3 杭州分公司 2
4 1 总公司
5 2 浙江分公司 1
6 3 杭州分公司 2
select * from dept start with mgrno=1 connect by prior deptno= mgrno
DEPTNO DEPTNAME MGRNO
1 2 浙江分公司 1
2 3 杭州分公司 2
总结:
1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描。可能对应一个或多个分支。
start with可以省略,如果省略,表示对所有节点都当成根节点分别进行遍历
2)prior放在父节点端,则表示扫描树是以start with指定的节点作为最低层子节点,从下往上扫描。顺序是子节点往父节点扫描,直到根节点为止,这种情况只能得到一个分支。
start with可以省略,如果省略,表示对所有节点都当成最低层子节点分别往根节点方向遍历
最后会了上面大家应该知道下面 sys_connect_path()
sys_connect_by_path 函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示:
select/* max(substr(*/sys_connect_by_path(deptname,',')/*,2))*/ from dept connect by prior deptno= mgrno;
SYS_CONNECT_BY_PATH(DEPTNAME,'
1 ,浙江分公司
2 ,浙江分公司,杭州分公司
3 ,杭州分公司
4 ,总公司
5 ,总公司,浙江分公司
6 ,总公司,浙江分公司,杭州分公司
- oracle树中prior的用法
- oracle树中prior的用法
- oracle中prior的用法,connect by prior,树形目录
- oracle中prior的用法,connect by prior,树形目录
- oracle中prior的用法,connect by prior,树形目录
- oracle中prior的用法,connect by prior,树形目录
- oracle中prior的用法,connect by prior,树形目录
- oracle中START WITH ... CONNECT BY PRIOR的用法
- 【ORALCE】oracle中prior的用法,connect+by+prior,树形目录+
- oracle中进行简单树查询(递归查询) ,PRIOR、CONNECT_BY_ROOT的用法
- Oracle中start by prior子句用法
- Oracle Connect By Prior的用法
- Oracle Connect By Prior的用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- 不要把培训当成逃避就业的借口
- 计算机算法领域HASH简介
- 哥哥开博了
- ftp的虚拟用户{转载}
- C语言内存分配疑问及相关回答
- oracle树中prior的用法
- vmwareTools
- 日期时间脚本库方法列表
- FC10搞的我要抓狂疯掉了~
- 使用 FUSE 开发自己的文件系统
- spam的来源
- C++ primer第四版15.9节案例吐血实现
- Android开发循序渐进实例2--画面间数据传递例子
- 2010年电子业三大趋势及投资方向/Google、苹果、三星掀起台厂新风暴