用select 语句中的START WITH...CONNECT BY PRIOR子句实现递归查询
生活随笔
收集整理的這篇文章主要介紹了
用select 语句中的START WITH...CONNECT BY PRIOR子句实现递归查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
from http://www.javaeye.com/topic/184074
今天發現在oracle中的select語句可以用START WITH...CONNECT BY PRIOR子句實現遞歸查詢,connect by 是結構化查詢中用到的,其基本語法是:
select ... from tablename start with cond1
connect by cond2
where cond3;
簡單說來是將一個樹狀結構存儲在一張表里,比如一個表中存在兩個字段:
id,parentid那么通過表示每一條記錄的parent是誰,就可以形成一個樹狀結構。
用上述語法的查詢可以取得這棵樹的所有記錄。
其中COND1是根結點的限定語句,當然可以放寬限定條件,以取得多個根結點,實際就是多棵樹。
COND2是連接條件,其中用PRIOR表示上一條記錄,比如 CONNECT BY PRIOR ID=PRAENTID就是說上一條記錄的ID是本條記錄的PRAENTID,即本記錄的父親是上一條記錄。
COND3是過濾條件,用于對返回的所有記錄進行過濾。
轉載于:https://www.cnblogs.com/rongxh7/archive/2010/06/19/1760957.html
總結
以上是生活随笔為你收集整理的用select 语句中的START WITH...CONNECT BY PRIOR子句实现递归查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LU 分解 (LU Decomposit
- 下一篇: 己所不欲,勿施于人