在Oracle遞歸查詢中經常會用到Start with...Connect By子句來遞歸查詢一般的情況下都是用於某個表維護樹形結構的具體應用。以下就是文章的具體內容的介紹,望你浏覽完以下的內容會有所收獲。
創建示例表:
Sql代碼
- CREATE TABLE TBL_TEST
- (
- ID NUMBER,
- NAME VARCHAR2(100 BYTE),
- PID NUMBER DEFAULT 0
- );
在Oracle遞歸查詢中需要插入的測試數據如下:
Sql代碼
- 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');
Sql代碼
從Root往樹末梢遞歸
- select * from TBL_TEST
- start with id=1
- connect by prior id = pid
Sql代碼
從末梢往樹ROOT遞歸
- select * from TBL_TEST
- start with id=5
- connect by prior pid = id