oracle 的 start with connect by prior 學習
語法:
SELECT ... FROM + 表名
START WITH +
條件1
CONNECT BY PRIOR + 條件2
WHERE
+ 條件3
說明:
這個方法是用來查詢樹狀結構的數據的。舉個例子,我們有一個這樣的結構
然後建一個這樣的表,插入數據。
CREATE TABLE TEST(
ID NUMBER(2) PRIMARY KEY,
PARENT_ID NUMBER(2)
);
INSERT INTO TEST (ID, PARENT_ID) VALUES (1, 0);
INSERT INTO TEST (ID, PARENT_ID) VALUES (2, 1);
INSERT INTO TEST (ID, PARENT_ID) VALUES (3, 1);
INSERT INTO TEST (ID, PARENT_ID) VALUES (4, 2);
INSERT INTO TEST (ID, PARENT_ID) VALUES (5, 2);
INSERT INTO TEST (ID, PARENT_ID) VALUES (6, 3);
INSERT INTO TEST (ID, PARENT_ID) VALUES (7, 3);
現在,我們可以開始查詢了。
比如,我們要查詢ID為3的子節點有哪些:
SELECT * FROM TEST START WITH ID = 3 CONNECT BY PARENT_ID = PRIOR ID;
結果:
查詢1的子節點:
查詢3的父節點有哪些:
SELECT * FROM TEST START WITH ID = 3 CONNECT BY PRIOR PARENT_ID = ID
結果:
查詢7的父節點有哪些:
基本用法就是這樣了
oracle 的 start with connect by prior 學習