zoukankan      html  css  js  c++  java
  • oracle中 connect by prior 递归查询

    Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: 
    select ... from tablename start with 条件1 
    connect by 条件2 
    where 条件3; 
    例: 
    select * from table 
    start with org_id = 'HBHqfWGWPy' 
    connect by prior org_id = parent_id; 

         简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: 
    org_id,parent_id那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。 
         用上述语法的查询可以取得这棵树的所有记录。 
         其中: 
         条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。 
         条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。 
         条件3 是过滤条件,用于对返回的所有记录进行过滤。 

         简单介绍如下: 
         早扫描树结构表时,需要依此访问树结构的每个节点,一个节点只能访问一次,其访问的步骤如下: 
         第一步:从根节点开始; 
         第二步:访问该节点; 
         第三步:判断该节点有无未被访问的子节点,若有,则转向它最左侧的未被访问的子节,并执行第二步,否则执行第四步; 
         第四步:若该节点为根节点,则访问完毕,否则执行第五步; 
         第五步:返回到该节点的父节点,并执行第三步骤。 

         总之:扫描整个树结构的过程也即是中序遍历树的过程。 

  • 相关阅读:
    vue-Prop
    C#四舍五入的方法
    设计模式-建造者模式
    vue-解决Vue打包上线之后部分CSS不生效的问题
    vue项目兼容IE浏览器
    html-box-sizing
    MSSQLSERVER执行计划详解
    white-space和word-wrap和word-break所表示的换行和不换行的区别
    JS设置cookie、读取cookie、删除cookie
    windows7 telnet服务开启和登录授权
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/6931924.html
Copyright © 2011-2022 走看看