Oracle connect by 层级结构查询

Posted N神3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle connect by 层级结构查询相关的知识,希望对你有一定的参考价值。

公司组织架构表:organization

一、查询子级

select * from organization
start with id=\'1\'
connect by prior id = parent_id

 解析:

1、首先找出id=1的记录

2、prior在那一边,则取上条记录那个字段。例如上面prior与id一起,则取上面查找出来记录id与表parent_id匹配,符合id = parent_id则找出来。

 

 二、查询父级

select * from organization
start with id = 7;
connect by id = prior parent_id

 解析:

1、首先找出id=7的记录

2、prior在那一边,则取上条记录那个字段。例如上面prior与parent_id一起,则取上面查找出来记录parent_id与表id匹配,符合parent_id = id 则找出来。

 

 

三、通俗理解

prior id = pid:以当前start with的记录id去匹配其它记录的pid(即:子找父)

id = prior pid:以当前start with的记录pid去匹配其它记录的id(即:父找子)

以上是关于Oracle connect by 层级结构查询的主要内容,如果未能解决你的问题,请参考以下文章

Oracle层级询语句connect by 用法详解

浅谈oracle树状结构层级查询测试数据

Oracle CONNECT by 简单用法

Oracle对树状查询

oracle中connect by prior的使用

用SYS_CONNECT_BY_PATH进行层级查询时的排序问题