码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE 的CONNECT BY、START WITH,CONNECT_BY_ROOT、CONNECT_BY_ISLEAF、SYS_CONNECT_BY_PATH,LEVEL的使用(Hierarchical query-层次查询)

时间:2018-07-22 13:59:16      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:开始   节点   记录   connect   遍历   分数   acl   isl   star   

一、基本语法:

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 BY、START WITH,CONNECT_BY_ROOT、CONNECT_BY_ISLEAF、SYS_CONNECT_BY_PATH,LEVEL的使用(Hierarchical query-层次查询)

标签:开始   节点   记录   connect   遍历   分数   acl   isl   star   

原文地址:https://www.cnblogs.com/yiming523/p/9349696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!