zoukankan      html  css  js  c++  java
  • 在Oracle 中使用CONNECT BY PRIOR START WITH 语句详解

    语法:connect by 是结构化查询中用到的,其基本语法如下:

    start with,connect by主要目的:从表中取出树状数据。可以假想成表中存成的各条数据是分别是树中的一个结点。

    select … from tablename start with 条件1
    connect by prior 条件2
    where 条件3;
    其中:
    条件1 是根结点限定语句,当然也可以放宽限定条件取多个结点,就形成多根树。
    条件2 是连接条件。
    条件3 是过滤条件,用于所返回的所有记录进行过滤。
     
    例如
    select * from table
    start with id = ‘G113’
    connect by prior id = pid
    where fflag = ‘Y’;
     
    在一个树状存储表中有两个字段,id和pid。其中pid为id上级记录的id。
    用上述语法的查询可以取得这棵树的所有记录。
     
    扫描顺序:
    1,从根结点开始;
    2,访问该结点;
    3,判断该结点有无被访问的子结点,若有,则转向它的最左侧的的未访问的子结点,并执行第二步,否则执行第四步;
    4,若该结点为根节点,则访问完毕,否则执行第五步;
    5,返回该结点的父结点,并执行第三步;
     
     
    select …
    connect by {prior 列名1=列名2|列名1=prior列名2}
    [start with];
  • 相关阅读:
    正则里的.*?
    无边框缩放
    平台 测试笔记
    eclipse快捷键
    linux笔记
    笔记
    wamp、wordpress
    java-selenium
    html/css笔记
    selenium2——ruby
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/4576728.html
Copyright © 2011-2022 走看看