ORACLE 的CONNECT BYSTART WITH,CONNECT_BY_ROOTCONNECT_BY_ISLEAFSYS_CONNECT_BY_PATH,LEVEL的使用(Hierarc(代码
Posted yiming523
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 的CONNECT BYSTART WITH,CONNECT_BY_ROOTCONNECT_BY_ISLEAFSYS_CONNECT_BY_PATH,LEVEL的使用(Hierarc(代码相关的知识,希望对你有一定的参考价值。
一、基本语法:
SELECT * FROM TABLE START WITH <condition1> CONNECT BY [PRIOR] id= parentid;
层次查询用来查找存在父子关系的数据,也就是树形结构的数据;其返还的数据也能够明确的区分出每一层的数据。
"start with <condition>" -- 代表在这棵树中你要开始遍历的的节点,是用来限制第一层的数据,或者叫根节点数据;以这部分数据为基础来查找第二层数据,
然后以第二层数据查找第三层数据以此类推。
"connect by prior id = parentid" -- 标示节点之间的父子关系,是用来指明Oracle在查找数据时以怎样的一种关系去查找;比如说查找第二层的数据时用第一
层数据的id去跟表里面记录的parentid字段进行匹配,如果这个条件成立那么查找出来的数据就是第二层数据,同理查找第
三层第四层…等等都是按这样去匹配。
"level" -- 关键字,代表树形结构中的层级编号;第一层是数字1,第二层数字2,依次递增。
prior还有一种用法:
select * from table [start with condition1] connect by id= [prior] parentid 或者: select * from table [start with condition1] connect by [prior] parentid = id
以上是关于ORACLE 的CONNECT BYSTART WITH,CONNECT_BY_ROOTCONNECT_BY_ISLEAFSYS_CONNECT_BY_PATH,LEVEL的使用(Hierarc(代码的主要内容,如果未能解决你的问题,请参考以下文章
Oracle系列1Oracle 的connect权限和create session的区别
oracle connect by 和 start with 的用法
Oracle函数sys_connect_by_path 详解