oracle 中start with 的用法

2022-03-10 06:33:14 字數 1723 閱讀 1681

oracle 中start with 的用法

發表於2013/3/3 23:29:35  

40191人閱讀

分類: oracle

oracle 提供了start with connect by 語法結構可以實現遞迴查詢。

1. 乙個簡單舉例:

sql> select *  from test;

bill_month           day_number msisdn

200803                        1 13800

200803                        3 13800

200803                        2 13800

200803                        2 13801

200803                        4 13804

200803                        5 13804

200803                        7 13804

200803                        8 13804

200803                        6 13802

200803                        6 13801

200803                        7 13801

200803                        8 13801

12 rows selected

sql>

sql> select * from test

2       start with day_number=1

3       connect by  prior day_number=day_number-1 and prior msisdn= msisdn

4      ;

bill_month           day_number msisdn

200803                        1 13800

200803                        2 13800

200803                        3 13800

sql>

上面的語句查詢出了從1開始,並且day_number 逐漸+1 遞增的,並且 msisdn 相同的哪些個資料.

2. start with  connect by 語法結構

如上面說看到的 例子, 其語法結構為  start with condition  connect by  condition (含 prior 關鍵字)

start with conditon 給出的seed 資料的範圍, connect by  後面給出了遞迴查詢的條件,prior 關鍵字表示父資料,prior 條件表示子資料需要滿足父資料的什麼條件。

在下面的這個start with connect by 結構中,就表示 查詢出了從1開始,父資料的day_number等於子資料的day_number-1而且父資料的msisdn=子資料的msisdn.

start with day_number=1

connect by  prior day_number=day_number-1 and prior msisdn= msisdn

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臨時表是注意一...