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

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

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

    SQL重復記錄查詢

     

    SQL重復記錄查詢


    1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
    select * from people
    where peopleId in (select   peopleId from   people group by   peopleId having count (peopleId) > 1)

    2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
    delete from people
    where peopleId in (select   peopleId from people group by   peopleId   having count (peopleId) > 1)
    and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)

    3、查找表中多余的重復記錄(多個字段)
    select * from vitae a
    where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having

    count(*) > 1)

    4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
    delete from vitae a
    where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

    5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
    select * from vitae a
    where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having

    count(*) > 1)
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

    (二)
    比方說
    在A表中存在一個字段“name”,
    而且不同記錄之間的“name”值有可能會相同,
    現在就是需要查詢出在該表中的各記錄之間,“name”值存在重復的項;
    Select Name,Count(*) From A Group By Name Having Count(*) > 1
    如果還查性別也相同大則如下:
    Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

    (三)
    方法一
    declare @max integer,@id integer
    declare cur_rows cursor local for select
    主字段,count(*) from 表名 group by 主字段 having

    count(*) >; 1
    open cur_rows
    fetch cur_rows into @id,@max
    while @@fetch_status=0
    begin
    select @max = @max -1
    set rowcount @max
    delete from 表名 where 主字段 = @id
    fetch cur_rows into @id,@max
    end
    close cur_rows
    set rowcount 0

    方法二

    有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均重復的記錄,

    二是部分關鍵字段重復的記錄,比如Name字段重復,而其他字段不一定重復或都重復可以忽略。

      1、對于第一種重復,比較容易解決,使用
    select distinct * from tableName

      就可以得到無重復記錄的結果集。

      如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
    select distinct * into #Tmp from tableName
    drop table tableName
    select * into tableName from #Tmp
    drop table #Tmp

      發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。

      2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下

      假設有重復的字段為Name,Address,要求得到這兩個字段唯一的結果集
    select identity(int,1,1) as autoID, * into #Tmp from tableName
    select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
    select * from #Tmp where autoID in(select autoID from #tmp2)

      最后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫

    在select子句中省去此列)

    (四)查詢重復
    select * from tablename

    where id in (select id from tablename group by id having count(id) > 1)

                                                                --from 網絡

    http://hi.baidu.com/zeronet/blog/item/27c41046d2c0060a6b63e596.html

    posted on 2009-03-28 13:03 luofeng225 閱讀(1430) 評論(0)  編輯  收藏 所屬分類: Oracle


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


    網站導航:
     
    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    統計

    公告

    我曾經聽到這么一個故事: 一個年輕的程序員問一個老程序員(一個比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個小時在學習新的東西。

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    收藏夾

    Java Website

    java技術博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成网站在线观看青青| 毛片免费视频播放| 亚洲国产综合人成综合网站| 亚洲精品无码人妻无码| 成人免费AA片在线观看| 亚洲色中文字幕在线播放| 天天看免费高清影视| 亚洲国产精品无码中文lv| 国产91久久久久久久免费| 一级毛片完整版免费播放一区| 全亚洲最新黄色特级网站 | 99久久国产亚洲综合精品| 扒开双腿猛进入爽爽免费视频| 自拍偷区亚洲国内自拍| 日韩在线视频免费看| 久久久久亚洲AV无码去区首| 亚洲高清无码综合性爱视频| 国产免费人成视频尤勿视频| 亚洲午夜久久久精品影院| 91香蕉成人免费网站| 亚洲国产精品成人综合色在线| 国产伦一区二区三区免费| 巨胸喷奶水www永久免费| 久久久久亚洲AV成人片| 成人毛片免费观看| 手机永久免费的AV在线电影网| 亚洲综合色自拍一区| 91精品国产免费久久国语麻豆| 亚洲一线产区二线产区区| 亚洲精品无码久久久| 8888四色奇米在线观看免费看| 亚洲最大无码中文字幕| 久久精品国产亚洲5555| 最近最新高清免费中文字幕 | 亚洲欧美在线x视频| 亚洲综合久久1区2区3区| 最近最好的中文字幕2019免费 | 亚洲综合无码一区二区三区| 曰皮全部过程视频免费国产30分钟 | 色窝窝亚洲AV网在线观看| 亚洲精品乱码久久久久66|