Oracle 中 Start With 關鍵字

2022-05-06 15:48:11 字數 780 閱讀 4612

基本語法如下:

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 後, 這裡的條件判斷, 等價於 在最後查詢出結果列表之後, 再進行條件篩選; 並非 刪除掉 節點及子節點;

oracle中累計求和 oracle累計求和

poj2001 shortest prefixes trie樹應用 沉迷wow又頹了兩天orz,暴雪爸爸要在國服出月卡了.這是要我好好學習嗎?趕緊來刷題了.oj 題目大意是求所有字串裡每乙個字元 硬體相關 jtag介面 jtag joint test action group,聯合測試行動小組 是一...

oracle中累計求和 oracle累計求和

oracle累計求和 將當前行某列的值與前面所有行的此列值相加,即累計求和 方法一 with t as select 1 val from dual union all select 3 from dual union all select 5 from dual union all select ...

Oracle中臨時表

最近考慮到我們的資料庫端寫儲存過程關於臨時表使用的情況,由於我們 現在還不清楚資料庫端到底是怎麼處理的,是否和sql server的處理方式相 同,是否會存在隱患等等一些問題,為了避免將來不必要的麻煩我做了深 入的研究和檢視了一些權威的資料,現在和大家共享,希望大家在處理 oracle臨時表是注意一...