zoukankan      html  css  js  c++  java
  • Oracle高级函数篇之递归查询start with connect by prior简单用法

    路飞:“ 把原来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;
    

    结果如下图:

    作者:橡胶果实 —— 要成为海贼王的少年

    出处:https://www.cnblogs.com/topfish/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    uva 10491 Cows and Cars
    uva 10910 Marks Distribution
    uva 11029 Leading and Trailing
    手算整数的平方根
    uva 10375 Choose and divide
    uva 10056 What is the Probability?
    uva 11027 Palindromic Permutation
    uva 10023 Square root
    Ural(Timus) 1081. Binary Lexicographic Sequence
    扩展欧几里得(求解线性方程)
  • 原文地址:https://www.cnblogs.com/topfish/p/9573542.html
Copyright © 2011-2022 走看看