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 是过滤条件,用于对返回的所有记录进行过滤。 

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

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

  • 相关阅读:
    正则表达式把所有Paul替换成Ringo:Paul Puala Pualine paul Paul
    DOM 和 BOM
    新手的grid布局
    css中的单位和css中的颜色表示方法
    css定位
    Winform 通过 WebBrowser 与 JS 交互
    PDF目录编辑器使用介绍
    [.NET] 控制只启动单个指定外部程序
    搭建 Frp 来远程内网 Windows 和 Linux 机子
    CentOs8 nmcli命令行方式操作网卡配置
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/6931924.html
Copyright © 2011-2022 走看看