日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

ORACLE 遞歸查詢

系統(tǒng) 2077 0

既然會看ORACLE遞歸查詢那么大家應(yīng)該是比較清楚遞歸是什么意思了,在這里我就不多加說明了,只作簡單介紹了。

言歸正傳所謂遞歸查詢那么數(shù)據(jù)表中數(shù)據(jù)的結(jié)構(gòu)應(yīng)該是符合遞歸查詢的基本條件,即表中有ID,PID(節(jié)點編號、父節(jié)點編號)如果把數(shù)據(jù)以UI的方式展現(xiàn)出來應(yīng)該是一棵或多棵樹了。

那么我們要以其中一個節(jié)點去遞歸查詢出這個節(jié)點子節(jié)點或父節(jié)點的過程就是我們所要說明的。

遞歸查詢語法:

?

select ... from tablename? where 條件4 start with 條件1? connect by 條件2?AND 條件3

?

如下面的表結(jié)構(gòu) http://www.cnblogs.com/wanghonghu/archive/2012/08/31/2665945.html

    
      CREATE
    
    
      TABLE
    
    
       SC_DISTRICT

(

  IID         
    
    
      NUMBER
    
    (
    
      10
    
    )                  
    
      NOT
    
    
      NULL
    
    
      ,

  PARENT_ID  
    
    
      NUMBER
    
    (
    
      10
    
    
      ),

  INAME       
    
    
      VARCHAR2
    
    (
    
      255
    
     BYTE)          
    
      NOT
    
    
      NULL,
    
    
      

 BZ      
      
        NUMBER
      
      (
      
        4
      
      )
      
);
ALTER TABLE SC_DISTRICT ADD ( CONSTRAINT SC_DISTRICT_PK PRIMARY KEY (IID)); ALTER TABLE SC_DISTRICT ADD ( CONSTRAINT SC_DISTRICT_R01 FOREIGN KEY (PARENT_ID) REFERENCES SC_DISTRICT (IID));
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,INAME) 
    
      VALUES
    
    (
    
      1
    
    ,
    
      '
    
    
      四川省
    
    
      '
    
    
      );




    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      2
    
    ,
    
      1
    
    ,
    
      '
    
    
      巴中市
    
    
      ',0
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      3
    
    ,
    
      1
    
    ,
    
      '
    
    
      達州市
    
    
      ',0
    
    
      ); 




    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      4
    
    ,
    
      2
    
    ,
    
      '
    
    
      巴州區(qū)
    
    
      ',0
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      5
    
    ,
    
      2
    
    ,
    
      '
    
    
      通江縣
    
    
      ',0
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      6
    
    ,
    
      2
    
    ,
    
      '
    
    
      平昌縣
    
    
      ',0
    
    
      );




    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      7
    
    ,
    
      3
    
    ,
    
      '
    
    
      通川區(qū)
    
    
      ',0
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      8
    
    ,
    
      3
    
    ,
    
      '
    
    
      宣漢縣
    
    
      ',0
    
    
      );




    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      9
    
    ,
    
      8
    
    ,
    
      '
    
    
      塔河鄉(xiāng)
    
    
      ',1
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      10
    
    ,
    
      8
    
    ,
    
      '
    
    
      三河鄉(xiāng)
    
    
      ',1
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      11
    
    ,
    
      8
    
    ,
    
      '
    
    
      胡家鎮(zhèn)
    
    
      ',1
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      12
    
    ,
    
      8
    
    ,
    
      '
    
    
      南壩鎮(zhèn)
    
    
      ',1
    
    
      );

 


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      13
    
    ,
    
      6
    
    ,
    
      '
    
    
      大寨鄉(xiāng)
    
    
      ',2
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      14
    
    ,
    
      6
    
    ,
    
      '
    
    
      響灘鎮(zhèn)
    
    
      ',2
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      15
    
    ,
    
      6
    
    ,
    
      '
    
    
      龍崗鎮(zhèn)
    
    
      ',2
    
    
      );


    
    
      INSERT
    
    
      INTO
    
     SC_DISTRICT(IID,PARENT_ID,INAME,BZ) 
    
      VALUES
    
    (
    
      16
    
    ,
    
      6
    
    ,
    
      '
    
    
      白衣鎮(zhèn)
    
    
      ',2
    
    );
    

如果如圖

? ORACLE 遞歸查詢

--查詢平昌縣的子節(jié)點

SELECT * FROM SC_DISTRICT
START WITH INAME = '平昌縣'
CONNECT BY PRIOR IID = PARENT_ID

--查詢平昌縣的父節(jié)點

SELECT * FROM SC_DISTRICT
START WITH INAME = '平昌縣'
CONNECT BY PRIOR? PARENT_ID= IID

--只是查詢當(dāng)前節(jié)點BZ為0的,但不會查詢節(jié)點BZ為0的子節(jié)點(這點大家注意了)

SELECT * FROM SC_DISTRICT
START WITH INAME = '平昌縣' AND BZ = 0
CONNECT BY PRIOR? PARENT_ID= IID ;

--查詢當(dāng)前節(jié)點和子節(jié)點的BZ為0的方法

SELECT * FROM SC_DISTRICT WHERE BZ = 0
START WITH INAME = '平昌縣'
CONNECT BY PRIOR PARENT_ID= IID

--此方式不僅可以查詢BZ為0的節(jié)點而且會不再去遍歷此節(jié)點的子節(jié)點

SELECT * FROM SC_DISTRICT START WITH INAME = '平昌縣'
CONNECT BY PRIOR PARENT_ID= IID AND BZ = 0

如果大家對遞歸的方式比較了解的話上面的幾種方式就很容易理解了。

ORACLE 遞歸查詢


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 布拖县| 赣榆县| 疏附县| 安义县| 顺平县| 廉江市| 宜城市| 青海省| 太白县| 华蓥市| 连平县| 平湖市| 玉屏| 吉水县| 无锡市| 萨嘎县| 福州市| 高邑县| 上杭县| 阿坝| 大城县| 新泰市| 修文县| 庆城县| 吴桥县| 文成县| 闽清县| 长乐市| 巴林右旗| 淄博市| 景德镇市| 诸城市| 南宫市| 本溪市| 安平县| 江安县| 伊金霍洛旗| 河南省| 承德县| 宜丰县| 华池县|