欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sqlserver清除完全重复的数据只保留重复数据中的第一条

程序员文章站 2023-11-30 10:28:58
--创建测试表 create table [dbo].[testtab]( [id] [nchar](10) null, [name] [nchar](...
--创建测试表 
create table [dbo].[testtab]( 
[id] [nchar](10) null, 
[name] [nchar](10) null 
) ; 
--向测试表插入测试数据 
insert into testtab values('1','1'); 
insert into testtab values('1','1'); 
insert into testtab values('2','2'); 
insert into testtab values('2','2'); 
insert into testtab values('3','3'); 
insert into testtab values('3','3'); 

--创建临时表并向临时表中插入测试表testtab中数据以及添加自增id:autoid 
select identity(int,1,1) as autoid, * into #tmp from testtab 
--根据autoid删除临时表#tmp中的重复数据,只保留每组重复数据中的第一条 
delete #tmp where autoid in(select max(autoid) from #tmp group by id); 
--清除testtab表中的所有数据 
delete testtab; 
--向testtab表中插入#tmp表中被处理过的数据 
insert into testtab select id,name from #tmp; 
--删除临时表#tmp 
drop table #tmp;