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

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL server 經(jīng)驗(yàn)分享(五)重復(fù)記錄的查詢與刪除

系統(tǒng) 2169 0

<一> 有相關(guān)ID標(biāo)識(shí)

一.查找重復(fù)記錄

1.查找所有重復(fù)記錄

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

? ?查出相同orderid中創(chuàng)建時(shí)間最晚的記錄

      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.過濾重復(fù)記錄(只顯示一條ID最大的)

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

??

二.刪除重復(fù)記錄

?

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

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

??

2.保留一條,刪除其他重復(fù)記錄

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

??

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

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

??

?

1、查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(peopleId)來判斷

      select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
    

??

2、刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個(gè)字段(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、查找表中多余的重復(fù)記錄(多個(gè)字段)?

      select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
    

?
4、刪除表中多余的重復(fù)記錄(多個(gè)字段),只留有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、查找表中多余的重復(fù)記錄(多個(gè)字段),不包含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)
    

??

?<二>沒有相關(guān)ID標(biāo)識(shí)

這種情況可以使用Row_Number() Over 來實(shí)現(xiàn)重復(fù)記錄的查詢和刪除:

原表:

SQL?server?經(jīng)驗(yàn)分享(五)重復(fù)記錄的查詢與刪除
查詢重復(fù)記錄:

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

    

?結(jié)果:

SQL?server?經(jīng)驗(yàn)分享(五)重復(fù)記錄的查詢與刪除
?刪除重復(fù)記錄:

      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;
    

?結(jié)果:

SQL?server?經(jīng)驗(yàn)分享(五)重復(fù)記錄的查詢與刪除
?三.根據(jù)兩個(gè)字段查重復(fù)

我想查詢表shiyan003,按xm,sfzhm這兩個(gè)字段查

      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是要查詢的重復(fù)字段
    

?

SQL?server?經(jīng)驗(yàn)分享(五)重復(fù)記錄的查詢與刪除


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 贵溪市| 高台县| 阳西县| 昔阳县| 东丰县| 金溪县| 汉源县| 喜德县| 沂南县| 抚顺县| 镇原县| 文登市| 库尔勒市| 措美县| 察隅县| 抚顺市| 新化县| 贵德县| 平原县| 盐亭县| 黔东| 内黄县| 贞丰县| 巴南区| 南开区| 安福县| 彭泽县| 碌曲县| 平安县| 蓝田县| 监利县| 大英县| 龙岩市| 额尔古纳市| 辽宁省| 佛冈县| 阿拉善盟| 阳城县| 吴旗县| 英吉沙县| 登封市|