<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大大毛 的筆記

      DDM's Note

    哪怕沒有辦法一定有說法,
    就算沒有鴿子一定有烏鴉,
    固執無罪 夢想有價,
    讓他們驚訝.

    posts - 14, comments - 23, trackbacks - 0, articles - 58
       :: 首頁 ::  :: 聯系 ::  :: 管理

    查找不連續數據的多種方法

    Posted on 2007-09-03 19:31 大大毛 閱讀(457) 評論(0)  編輯  收藏 所屬分類: SQL

    問題:

    ??????經常會遇到在業務邏輯上數據連續的而需要找到那些不連續數據的情況。
    ??????解決此類問題的方法有很多,可以根據具體的數據結構來加以選擇運用,現就示例說明:

    示例1:
    表A結構

    ???表結構說明
    ??????kID??????主關鍵字,例如合同號
    ??????iNo??????序號(>=1),從業務邏輯上來說對於同一筆合同號該列的值應該保持連續遞增
    ???要求
    ??????找到那些有問題的 kID

    解決方法:
    ??????表A屬於是一種比較單純、簡單的結構,對於這類只要直接在表上做一次處理即可。
    ??????1. 方法A --?自連接
    ?????????利用對自身表的 iNo?進行錯值(+1或-1)外連,?找到無法連接的數據。
    自連接

    ??????這樣就可以定位到那些有問題的 kID 上。
    ??????這種解決方法是最通用的方法,不過在編寫上比較複雜。

    ??????2. 方法B -- 利用Count(*)
    利用Count(*)

    ??????看看這個實現就可以發現,這裏比較巧妙的利用了 iNo 列上的邏輯規則 (int型的連續遞增),如果 iNo 不從1開始計數則在Having 子句中加一點點運算即可。
    ??????這個解決方法比較巧妙,執行效率較高。

    ??????3. 方法C --?利用函數
    利用公式運算

    ??????方法C 與方法B 的思路實際上是一致的,就是利用 Group?,在 iNo?列上直接實施檢查,方法C 功能更加強大一些,因為如果 iNo 的規則有變更的話(如奇數遞增, :P ),改改這裏用的 n(n+1)?/ 2 的公式就好。


    示例2:
    ??????這裏是另外一種情況,相比示例1 來說更加複雜一些,它的 iNo 列由多列組成,示例如下。
    表B結構

    ??????表結構說明
    ?????????kID????????????主關鍵字,例如合同號
    ?????????iYear?????????第幾年度( >= 1),連續遞增
    ?????????iMonth?????第幾月份[1, 12],連續遞增
    ??????要求
    ?????????找到那些年度+月份不連續的 kID

    解決方法:
    ??????表B 的結構與表A 相比在需要檢查的列上變成多列的結構,而且多列的內部還有著一些隱含關係(如這裏示例中的年/月,顯然不可能第1年度未滿12月就跳到第2年度),不過就實質來看與表A 的結構一致 ( 可以將iYear , iMonth 看成一列?),因此同樣可以適用示例1中的方法,只要多加合併?iYear,?iMonth的邏輯就好。
    ??????這裏對iYear, iMonth列的合併,使用自定義列 + 表封裝 的方式來實現,下面就示例上面的Count方式。?
    利用Count(*)

    i am ddm

    主站蜘蛛池模板: 亚洲精品乱码久久久久久下载| 亚洲综合最新无码专区| 亚洲综合久久久久久中文字幕| 爽爽爽爽爽爽爽成人免费观看| 在线亚洲精品福利网址导航| j8又粗又长又硬又爽免费视频| 国产亚洲精品成人a v小说| 国产免费人成视频尤勿视频| 国产亚洲美女精品久久久| rh男男车车的车车免费网站 | 亚洲欧美日韩一区二区三区| 三年片在线观看免费观看高清电影| 亚洲国产情侣一区二区三区| 黄色成人网站免费无码av| 亚洲国产成人精品无码区二本 | 久久久久久成人毛片免费看| 亚洲第一成年人网站| 毛片免费视频在线观看| 国产成人亚洲精品电影| 国产成人A亚洲精V品无码| 亚洲一区免费观看| 最新国产精品亚洲| 亚洲国产日韩在线观频| 无码日韩精品一区二区三区免费| 亚洲欧洲高清有无| 女性无套免费网站在线看| 一级视频在线免费观看| 亚洲AV无码AV男人的天堂| 成年女人午夜毛片免费看| 成人免费网站久久久| 老司机亚洲精品影院无码| 午夜老司机免费视频| 插鸡网站在线播放免费观看| 亚洲国产高清美女在线观看| 婷婷综合缴情亚洲狠狠尤物| 久久青草免费91线频观看站街| 亚洲夂夂婷婷色拍WW47| 亚洲色成人中文字幕网站| 国产精品免费观看久久| 两性色午夜视频免费播放| 亚洲中文字幕人成乱码|