《oracle數據庫遞歸查詢以及給結果賦初值》

CR  CREATE TABLE USERS.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');
  2、格式
  Select * from …. Where [結果過濾條件語句]
  Start with  [and起始條件過濾語句]
  Connect by prior [and中間記錄過濾條件語句]
  3、查找全部下級
  select * from tbl_test start with id=1 connect by prior id=pid
  注意:此sql能查找id=1的數據的全部下級,寫sql語句時要注意,由於是從id開始查找下級,因此connect by prior 子句的條件是id=pid
  4、查找全部上級
  select * from tbl_test start with id=5 connect by prior pid=id
  由於是從id開始查找上級,因此connect by prior 子句的條件是pid=d
相關文章
相關標籤/搜索