sql 删除重复数据保留最新数据


--删除重复的客户数据
 update  [dbo].[Customer]  set Deleted=1,  [Note]=ISNULL([Note],'')+'_id_'+CONVERT(nvarchar, Id )+'_clear_2020-12-10'

where Id in (
	 --查找重复的 a.PartnerId,a.SourceId  数据
	  select a.Id from [dbo].[Customer] a
	  left join  (
			--查找重复的 a.PartnerId,a.SourceId 数据
			select a.PartnerId,a.SourceId from [dbo].[Customer] a
			where a.Deleted=0
			group by a.PartnerId,a.SourceId having count(a.Id)>1) table2 
	  on a.PartnerId=table2.PartnerId and a.SourceId=table2.SourceId
	  where table2.PartnerId is not null)

and   not exists (--这里换 not in 会慢
    select 1 from (
	select max(a.Id)  as 'Id'   from [dbo].[Customer] a
	where a.Deleted=0
	group by a.PartnerId,a.SourceId having count(a.Id)>1) c
    where c.Id=[dbo].[Customer].Id
)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值