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

Oracle高级函数篇之递归查询start with connect by prior简单用法

时间:2018-09-02 14:34:21      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:http   原来   多少   star   技术分享   from   公司   需求   高级   

路飞:“ 把原来CSDN的博客转移到博客园咯!”
前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询。下面简单来举个例子。在工作中我们经常会遇到有一定组织关系层次的关系。比如某个省下有多少市,每个市下又有多个区。再或者公司组织部门相互的隶属关系。这时我们就可能会用到 start with connect by prior 递归查询了
用法举例
1. 基本sql语法

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,表结构如下:
技术分享图片
表数据:
技术分享图片

=======================================================================
(1)从根节点向下查询:

select A.*from CITY_TREE A
STARTWITH A.CITY_ID =‘1‘
CONNECTBYPRIOR A.CITY_ID = A.CITY_PID;

结果如下图:
技术分享图片
(2)从根节1点向上查

select A.* from CITY_TREE A 
START WITH A.CITY_ID = ‘1‘
CONNECT BY A.CITY_ID = PRIOR A.CITY_PID;

结果如下图:
技术分享图片

Oracle高级函数篇之递归查询start with connect by prior简单用法

标签:http   原来   多少   star   技术分享   from   公司   需求   高级   

原文地址:https://www.cnblogs.com/topfish/p/9573542.html

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