Oracle高级函数篇之递归查询start with connect by prior简单用法
前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询。下面简单来举个例子。在工作中我们经常会遇到有一定组织关系层次的关系。比如某个省下有多少市,每个市下又有多个区。再或者公司组织部门相互的隶属关系。这时我们就可能会用到 start with connect by prior 递归查询了
1. 基本语法:
select ... from + 表
start with + 条件1
connect by prior + 条件2
where + 条件3
## 条件1:是根节点的限定语句
## 条件2:连接条件。prior表示上一条信息。比如connect by prior org_id = parent_id 就是说上一条记录的org_id是本条 记录的parent_id,即本记录的父亲是上一条记录。
## 条件3:过滤条件
2. 用法举例:
表名:CITY_TREE,表结构如下:
表数据:
接下来直接上SQL:
(1) 从根节1点向下查
select A.*from CITY_TREE A
STARTWITH A.CITY_ID ='1'
CONNECTBYPRIOR A.CITY_ID = A.CITY_PID;
(2) 从根节1点向上查
====================================================
希望对大家有一点点帮助