<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 閱讀(1431) 評論(0)  編輯  收藏 所屬分類: Oracle


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


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

    導航

    統計

    公告

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

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    收藏夾

    Java Website

    java技術博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 污污网站免费观看| 国产美女无遮挡免费视频| 亚洲一级特黄特黄的大片| 性xxxx视频播放免费| jizz18免费视频| 亚洲一区精品中文字幕| 岛国片在线免费观看| 久久免费观看视频| 亚洲18在线天美| 亚洲精品成人网站在线观看 | 成人免费午间影院在线观看| 免费人成在线观看播放a| 亚洲美女视频网站| 亚洲人成人网站在线观看| 美女视频黄的全免费视频网站| 久久www免费人成看国产片| 亚洲乱码在线卡一卡二卡新区| 亚洲综合国产一区二区三区| 毛片免费全部播放一级| 无人在线观看免费高清| 麻豆69堂免费视频| 亚洲日韩AV一区二区三区四区| 亚洲成在人天堂一区二区| 吃奶摸下高潮60分钟免费视频| 精品国产无限资源免费观看| 97超高清在线观看免费视频| 亚洲av日韩专区在线观看| 亚洲国产亚洲片在线观看播放| 亚洲国产精品嫩草影院在线观看| 国产成人在线免费观看| 午夜性色一区二区三区免费不卡视频| 99re6在线视频精品免费| 在线播放亚洲精品| 涩涩色中文综合亚洲| 亚洲男女性高爱潮网站| 国产成人亚洲综合色影视| 久久亚洲中文字幕精品一区四| 在线免费观看毛片网站| 在线看片免费不卡人成视频| 无码精品国产一区二区三区免费| 中文字幕成人免费高清在线视频 |