SQLServer 删除表中的重复数据,只保留一条记录

  
 --创建临时表并向临时表中插入测试表Tmp中数据以及添加自增id:autoID
select identity(int,1,1) as autoID, * into #Tmp from test
select * from  #Tmp
--根据autoID删除临时表#tmp中的重复数据,只保留每组重复数据中的第一条 
  DELETE FROM #Tmp WHERE autoID IN(
   SELECT autoID  FROM
    (
        SELECT autoID,字段A
      ,字段B,OrderNo=ROW_NUMBER() OVER(PARTITION BY 字段A
      ,字段B ORDER BY GETDATE()) 
        FROM #Tmp 
    ) Tmp
    WHERE OrderNo>1
  );
--清除testtab表中的所有数据 
delete testtab; 
--向testtab表中插入#Tmp表中被处理过的数据 
insert into testtab select 字段A , 字段B from #Tmp; 
--删除临时表#Tmp 
drop table #Tmp;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值