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

ORACLE 遞歸查詢

系統(tǒng) 2099 0

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

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

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

遞歸查詢語(yǔ)法:

?

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
    
    ,
    
      '
    
    
      達(dá)州市
    
    
      ',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é)點(diǎn)

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

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

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

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

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

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

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

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

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

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

ORACLE 遞歸查詢


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 黄陵县| 克东县| 太康县| 宝坻区| 紫阳县| 安仁县| 开鲁县| 思茅市| 海林市| 丰城市| 邮箱| 涞水县| 潢川县| 莒南县| 柘荣县| 五寨县| 南江县| 宜兴市| 巨野县| 福安市| 德钦县| 乳源| 施秉县| 桃园县| 万荣县| 桃江县| 桂平市| 沧州市| 内江市| 仪征市| 尼勒克县| 玉田县| 合山市| 双江| 彩票| 上栗县| 磴口县| 吉木乃县| 彩票| 灌阳县| 巴塘县|