樹結構表查詢

2021-06-09 13:58:48 字數 671 閱讀 5276

我們經常會將乙個比較複雜的目錄樹儲存到乙個表中。或者將一些部門儲存到乙個表中,而這些部門互相有隸屬關係。這個時候你就會用到connect by prior start with。

connect by 是結構化查詢中用到的,其基本語法是:

select ... from tablename start with 條件1

connect by prior 條件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查詢樹結構表

11月最後一天,趕緊寫多一篇湊夠四篇 對於樹狀結構的表,即有記錄父節點或子節點的表,如果不知道到底有多少層級,oracle有自帶的函式可以處理查詢 語法select a from b where c d start with id 1 connect by preid prior id prior代...

Oracle 樹結構查詢

同事寫的樹結構查詢,記錄一下 表結構很簡單 就兩列 rangid number rangname varchar2 主要根據rangid數值來表示層級關係 select t1.rangid,t1.rangname,decode select count from test t2 where t2.r...

Oracle樹結構查詢

oracle樹結構查詢 start with connect by用法簡介 oracle是乙個關聯式資料庫管理系統,它用表的形式組織資料,在某些表中的資料還呈現出 樹型結構的聯絡。例如,我們現在討論雇員資訊表emp,其中含有雇員編號 empno 和 經理 mgr 兩例,通過這兩列反映出來的就是雇員之...