1. 程式人生 > >oracle 的 start with connect by prior 學習

oracle 的 start with connect by prior 學習

哪些 num 例子 value 開始 一個 分享 語法 節點

語法:

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);

現在,我們可以開始查詢了。

比如,我們要查詢ID3的子節點有哪些:

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 學習