有相關ID標識一.查找重復記錄1.查找所有重復記錄Select*From表Where重復字段In(Select重復字段From表GroupBy重復字段HavingCount(*)>1)SELECT*FROMCompanyEmailcWHERE((SELECTCOUNT(*)FROMCompanyEmailWHEREEmail=a.Email)>1)ORDERBYEmailDESC查出相同orderid中創建時間最晚的記錄selectt.IdfromG" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL server 經驗分享(五)重復記錄的查詢與刪除

系統 2182 0

<一> 有相關ID標識

一.查找重復記錄

1.查找所有重復記錄

      Select * From 表 Where 重復字段 In (Select 重復字段 From 表 Group By 重復字段 Having Count(*)>1)
 
SELECT *
FROM CompanyEmail c
WHERE ((SELECT COUNT(*)
FROM CompanyEmail  
WHERE Email= a.Email) > 1)
ORDER BY Email DESC
    

? ?查出相同orderid中創建時間最晚的記錄

      select t.Id from  Group_Require t,
(select max(CreateTime) x from Group_Require group by OrderId) 
xx where t.CreateTime=xx.x and t.OrderId=38
    

?

2.過濾重復記錄(只顯示一條ID最大的)

      Select * From CompanyEmail  Where ID In (Select Max(ID) From CompanyEmail  Group By Email)
    

??

二.刪除重復記錄

?

1.刪除全部重復記錄(慎用)?

      Delete 表 Where 重復字段 In (Select 重復字段 From 表 Group By 重復字段 Having Count(*)>1)
    

??

2.保留一條,刪除其他重復記錄

      Delete CompanyEmail Where ID Not In (Select Max(ID) From CompanyEmail Group By Email)
    

??

3. 刪除多字段相同的重復記錄,保留一條

      delete CompanyEmail where ID not in (select max(ID) from CompanyEmail group by Email, Company)
    

??

?

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)
    

??

?<二>沒有相關ID標識

這種情況可以使用Row_Number() Over 來實現重復記錄的查詢和刪除:

原表:

SQL?server?經驗分享(五)重復記錄的查詢與刪除
查詢重復記錄:

      Select Row_Number(),* Over(Partition By userName,userPwd order By userName) From [Temp].[dbo].[User];

    

?結果:

SQL?server?經驗分享(五)重復記錄的查詢與刪除
?刪除重復記錄:

      Delete T From
(Select Row_Number() Over(Partition By userName,userPwd order By userName) As RowNumber,* From [Temp].[dbo].[User])T
Where T.RowNumber > 1;
    

?結果:

SQL?server?經驗分享(五)重復記錄的查詢與刪除
?三.根據兩個字段查重復

我想查詢表shiyan003,按xm,sfzhm這兩個字段查

      select *
  from shiyan003 a
 where exists (select 1
          from (select xm, sfzhm
                  from shiyan003
                 group by xm, sfzhm
                having count(*) > 1) s
         where s.xm = a.xm
           and s.sfzhm = a.sfzhm)
    

?

      select * from 表名 a join (select ID,NAME from 表名 group by ID,NAME having count(*)>1) b on a.ID=b.ID and a.NAME=b.NAME order by a.NAME ,a.ID
ID和NAME是要查詢的重復字段
    

?

SQL?server?經驗分享(五)重復記錄的查詢與刪除


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品久久不卡 | 日韩中文欧美 | 婷婷毛片 | 老黄网站 | 国产高清国内精品福利色噜噜 | 欧美精品日日鲁夜夜 | 久久久午夜 | 日韩爱爱视频 | 亚洲七七久久综合桃花 | 日日夜夜精品视频 | 女人精69xxxxx免费无毒 | se在线观看| 欧美精品国产日韩综合在线 | 四虎国产精品永久地址99新强 | 在线播放色 | 久久精品这里热有精品 | 成人欧美在线 | 九九热这里只有精品6 | 国产乱子伦一级毛片 | 欧美一区二区三区视频 | 福利免费观看 | 日日操日日操 | 99热精品久久只有精品30 | 中文字幕免费视频精品一 | 日本欧美中文字幕 | 四虎在线视频观看大全影视 | 国产欧美日韩精品一区二区三区 | 久青草免费在线视频 | 99久久精品国产综合男同 | 四虎影视永久 | 亚洲精品福利一区二区三区 | 欧美精品亚洲精品日韩经典 | 99在线观看精品免费99 | 老太做爰xxxx视频 | 国产成年网站v片在线观看 国产成人 免费观看 | 久操热久操 | 久久天天躁综合夜夜黑人鲁色 | 欧美视频一区二区三区 | 亚洲综合插| 精品久久久久久中文字幕女 | 欧美三级一区二区三区 |