oracle start with 函數

Oracle中start with…connect by prior子句用法

connect by 是結構化查詢中用到的,其基本語法是:
select … from tablename
start with 條件1
connect by 條件2
where 條件3;

例:
select * from table
start with org_id = ‘HBHqfWGWPy’
connect by prior org_id = parent_id;

         簡單說來是將一個樹狀結構存儲在一張表裏,好比一個表中存在兩個字段:
org_id,parent_id那麼經過表示每一條記錄的parent是誰,就能夠造成一個樹狀結構。
        用上述語法的查詢能夠取得這棵樹的全部記錄。
        其中:
        條件1 是根結點的限定語句,固然能夠放寬限定條件,以取得多個根結點,實際就是多棵樹。
        條件2 是鏈接條件,其中用 PRIOR表示上一條記錄,好比 CONNECT BY PRIOR org_id = parent_id;就是說 上一條記錄的org_id 是本條記錄的parent_id,即本記錄的父親是上一條記錄。

        條件3 是過濾條件,用於對返回的全部記錄進行過濾。 oracle


從Root往樹末梢遞歸
select * from TBL_TEST
start with id=1
connect by prior id = pid

從末梢往樹ROOT遞歸
select * from TBL_TEST
start with id=5
connect by prior pid = id
=====
對於oracle進行簡單樹查詢(遞歸查詢)

DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)
部門id 父部門id(所屬部門id) 部門名稱

spa

相關文章
相關標籤/搜索