Oracle遞歸查詢

Oracle中的遞歸查詢語句爲start with .... connect by prior,爲中序遍歷算法。算法

基本語法是:spa

select * from tablename遞歸

start with 條件1it

connect by 條件2io

where 條件3table

  • 條件1: 是根結點的限定語句,固然能夠放寬限定條件,以遍歷多個根結點,實際就是多棵樹。
  • 條件2:是鏈接條件,其中用PRIOR表示上一條記錄。
    好比connect by prior id = parent_id就是說上一條記錄的Id 是本條記錄的Parent_Id
  • 條件3:過濾返回的結果集。

PRIOR關鍵字select

運算符PRIOR被放置於等號先後的位置,決定着查詢時的檢索順序。遍歷

  • PRIOR被置於CONNECT BY子句中等號的前面時,則強制從根節點到葉節點的順序檢索,爲自頂向下查找。
    如:connect by prior id = parent_id
  • PIROR運算符被置於CONNECT BY 子句中等號的後面時,則強制從葉節點到根節點的順序檢索,爲自底向上的查找。
    如:connect by id = prior parent_id

PS:當CONNECT BY後指定多個鏈接條件時,每一個條件都應指定prior關鍵字語法

相關文章
相關標籤/搜索