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

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

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

    當前訪問本站: hits

    yjhmily

    堅持走自己的路……

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
    ??? 相信很多人在查詢數(shù)據(jù)庫時都會碰到檢索某表中不重復(fù)記錄的時候,提到檢索不重復(fù)記錄,馬上想到的肯定是Distinct或者Group By分組,
    小弟在初次使用的時候碰到了一些麻煩,這里拿出來與大家分享,希望對更多的朋友有所幫助!

    ??? 先看看數(shù)據(jù)庫表結(jié)構(gòu):
    ??? ??? 表名: TEST? 字段: Id,A,B,C,D
    ??? ??? 其中B字段包含重復(fù)值;

    Id

    A

    B

    C

    D

    1

    11

    a

    34

    bvb

    2

    22

    a

    35

    fgfg

    3

    33

    d

    ht

    sdf

    4

    44

    a

    345

    de

    5

    55

    c

    sfsf

    sscv

    6

    66

    b

    rt

    fg


    ???
    ??





    ?



    ???

    下面我們來看看用什么樣的SQL語句檢索出不含重復(fù)記錄的數(shù)據(jù):
    ?使用Distinct關(guān)鍵字
    ??? ? Distinct關(guān)鍵字主要用來在SELECT查詢記錄中根據(jù)某指定字段的值去除重復(fù)記錄
    ??? ?SELECT DISTINCT [字段名] FROM [表名] WHERE [檢索條件字句]

    ??? 所以用這樣一句SQL就可以去掉重復(fù)項了:
    ??? ?? ?
    SELECT?DISTINCT?(B)?FROM?TEST

    ??? 但是:

    ??? ? 這里有一個非常非常需要注意的地方:
    ??? ? SELECT DISTINCT [字段名]后面不能再跟其他的字段,否則檢索出來的記錄仍然會含有重復(fù)項;
    ????? 錯誤寫法:
    ??? ??? ??? SELECT DISTINCT [字段名] ,[其他字段名] FROM [表名] WHERE [檢索條件字句]
    ???
    ??? 實際上,我們上面SQL語句結(jié)果集里就只有B字段;(一般情況下,這種結(jié)果應(yīng)該是很難滿足需求的)


    ??? 如果我們的記錄集里還需要有其他字段值,那怎么辦呢?

    實際上,我們完全可以用另一種辦法來解決問題;只是需要用到子查詢而已!

    使用GROUP BY 分組
    ??? 有一點需要注意:
    ??? ?? 使用帶有GROUP BY字句的查詢語句時,在SELECT列表指定的列要么是GROUP BY 指定的列,要么包含聚合組函數(shù)

    ??? 所以用這樣一句SQL就可以去掉重復(fù)項了:

    SELECT?*?FROM?TEST?WHERE?id?in?(SELECT?MIN(id)?FROM?TEST?GROUP?BY?B)

    ??? 這樣就得到我們想要的結(jié)果集了:
    ???

    Id

    A

    B

    C

    D

    1

    11

    a

    34

    bvb

    3

    33

    d

    ht

    sdf

    5

    55

    c

    sfsf

    sscv

    6

    66

    b

    rt

    fg


    ??? ??

    ??? ??





    posted on 2006-12-15 11:24 kangxm 閱讀(1689) 評論(1)  編輯  收藏 所屬分類: SQL

    Feedback

    # re: 檢索數(shù)據(jù)庫表中的不重復(fù)記錄 2007-10-31 18:37 葉子
    'SELECT * FROM TEST WHERE id in (SELECT MIN(id) FROM TEST GROUP BY B)'

    用in 查詢將不會使用索引,效率會降低,如果是100W級的數(shù)據(jù),建議把MIN(id)抽到臨時表,在join 就搞定了.

    當你遇到這種情況的時候需要把 重復(fù)的刪除掉 怎么辦?
    要腳本的來找我.  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一区二区三区高清| 亚洲成人高清在线| 久久精品国产亚洲AV大全| 免费无码又爽又刺激一高潮| 亚洲成a人片在线观看老师| 国产亚洲综合视频| 免费大香伊蕉在人线国产| 亚洲αⅴ无码乱码在线观看性色| 国产成人精品免费视频大| 亚洲综合在线成人一区| 久久久高清日本道免费观看| 亚洲va无码手机在线电影| 国产激情免费视频在线观看 | 久久久影院亚洲精品| 男人天堂免费视频| 亚洲第一中文字幕| 精品国产无限资源免费观看| 亚洲一区中文字幕在线观看| 成年女人免费v片| 猫咪免费人成在线网站| 日韩一卡2卡3卡4卡新区亚洲| 一个人免费视频在线观看www| 亚洲一区二区在线视频| 97在线观免费视频观看| 亚洲AV无码一区二区一二区| 亚洲精品无码专区2| 日本免费中文字幕| 国产成人亚洲综合网站不卡| 四虎永久在线精品免费观看地址 | 久久青青成人亚洲精品| 97性无码区免费| 久久精品国产亚洲av瑜伽| 亚洲日韩乱码中文无码蜜桃臀网站| 一级毛片免费不卡在线| 亚洲综合欧美色五月俺也去| 亚洲中文字幕丝袜制服一区| 久久国产乱子伦免费精品| 亚洲精品宾馆在线精品酒店| 狠狠色婷婷狠狠狠亚洲综合| 亚欧在线精品免费观看一区| 偷自拍亚洲视频在线观看99|