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