Oracle中的遞歸查詢 主要是通過start with connect by prior語句實現(xiàn)對樹結(jié)構(gòu)的遍歷。其遍歷方式 使用了常見的中序遍歷。
先構(gòu)造一個比較直觀的 臨時表T
WITH T AS
(SELECT A.MODEL_ID, A.SUB_MODEL_ID FROM CC_DOMAIN_MODEL_REL A)
SELECT *
FROM T
T表數(shù)據(jù)如下:
table T
舉個??: 以MODEL_ID = 10000作為根節(jié)點 進(jìn)行遍歷
SELECT *
FROM T
START WITH T.MODEL_ID = 10000
CONNECT BY PRIOR T.SUB_MODEL_ID = T.MODEL_ID
遍歷結(jié)果如下:
正常寫法
如果不設(shè)置Start With,那么將遍歷所有的節(jié)點
SELECT *
FROM T
-- START WITH T.MODEL_ID = 10000
CONNECT BY PRIOR T.SUB_MODEL_ID = T.MODEL_ID
遍歷結(jié)果如下:
不設(shè)置Start With