熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle樹形結構實行查詢

2022-06-13   來源: Oracle 

  ORACLE提供了一種樹形結構用來實現層次查詢

  START WITH 指定查詢的根行

  CONNECT BY 指定父行和子行的關系

  PRIOR 引用父行

  為測試方便使用如下Demo

  建立數據庫表TreeTable

  Java代碼

  CREATE TABLE TreeTable(

  ID NUMBER PRIMARY KEY  //主鍵

  parentID NUMBER        //父節點

  sortID NUMBER          //排序節點

  NAME VARCHAR()       //子節點名

  );

  .插入數據初始化結果見圖藍色部分此時NAME字段展現的沒有父子的層次關系

  

  通過parentID和ID建立關聯同一個parentID對應多個ID 一個ID只對應一個parentID

  使用層次查詢

  .查詢一

  Java代碼

  SELECT ID parentID sortID NAME FROM TreeTable START WITH parentID = CONNECT BY PRIOR ID = parentID;

  通過parentID和ID建立關聯同一個parentID對應多個ID 一個ID只對應一個parentID

  使用層次查詢

  .查詢一

  Java代碼

  SELECT ID parentID sortID NAME FROM TreeTable START WITH parentID = CONNECT BY PRIOR ID = parentID;

  執行以後的sortID和NAME字段參照表中的綠色

  可以發現NAME字段已經實現了樹形結構但是在子節點之間未進行排序

  為了實現在同一個父親下面各個兄弟的排序ORACLE提供了siblings 排序

  .查詢二

  Java代碼

  SELECT ID parentID sortID NAME FROM TreeTable START WITH parentID = CONNECT BY PRIOR ID = parentID ORDER siblings BY sortID;

  執行之後結果參照表中灰色字段排序了


From:http://tw.wingwit.com/Article/program/Oracle/201311/17048.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.