Oracle 中 Start With 關鍵字


Start With (樹查詢)

基本語法如下:

SELECT ... FROM + 表名 WHERE + 條件3 START WITH + 條件1 CONNECT BY PRIOR + 條件2 --示例 Select * From DEMO Start With ID = '00001' Connect By Prior ID = PID

 

條件1: 表示從哪個節點開始查找, 也就是通過條件1 查詢到的數據, 作為后續查詢的起始節點(參數).

當然可以放寬限定條件,如 ID in ('00001', '00011')以取得多個根節點,也就是多棵樹;在連接關系中,除了可以使用列明外,還允許使用列表達式。

如果省略Start With

就默認把所有滿足查詢條件的Tree整個表中的數據從頭到尾遍歷一次,每一個數據做一次根,然后遍歷樹中其他節點信息.

條件2: 是連接條件,其中用PRIOR表示上一條記錄,例如CONNECT BY PRIOR ID = PID,意思就是上一條記錄的ID是本條記錄的PID,即本記錄的父親是上一條記錄。CONNECT BY子句說明每行數據將是按照層次順序檢索,並規定將表中的數據連入樹形結構的關系中。

Prior 在父節點的一側表示, 自底向上查, 在 子節點的一側表示 自上向下查詢;

條件3: 不能用在 Connect By 后, 這里的條件判斷, 等價於 在最后查詢出結果列表之后, 再進行條件篩選; 並非 刪除掉 節點及子節點;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM