oracle遞歸查詢(查詢條件ID下得所有子集)


一、CREATE TABLE TBL_TEST
  (
  ID    NUMBER,
  NAME  VARCHAR2(100 BYTE),
  PID   NUMBER                                  DEFAULT 0
  )
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
  INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');
二、格式
        Select * from …. Where [結果過濾條件語句]
  Start with  [and起始條件過濾語句]
  Connect by prior [and中間記錄過濾條件語句]
三、查找所有下級
        select * from tbl_test start with id=1 connect by prior id=pid
  注意:此sql能查找id=1的數據的所有下級,寫sql語句時要注意,因為是從id開始查找下級,所以connect by prior 子句的條件是         id=pid
四、查找所有上級
       select * from tbl_test start with id=5 connect by prior pid=id
  因為是從id開始查找上級,所以connect by prior 子句的條件是pid=d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM