SQL Server SQL去除重复记录的解决办法
2022-11-12 09:35:19
内容摘要
这篇文章主要为大家详细介绍了SQL Server SQL去除重复记录的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
话不多说,请看代码:
文章正文
这篇文章主要为大家详细介绍了SQL Server SQL去除重复记录的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
话不多说,请看代码:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | <code> if not object_id( 'Tempdb..#T' ) is null drop table #T Go Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2)) Insert #T select 1,N 'A' ,N 'A1' union all select 2,N 'A' ,N 'A2' union all select 3,N 'A' ,N 'A3' union all select 4,N 'B' ,N 'B1' union all select 5,N 'B' ,N 'B2' Go </code> |
--I、Name相同ID最小的记录(推荐用1,2,3),保留最小一条
方法1:
delete a from #T a where exists(select 1 from #T where Name=a.Name and ID<a.ID)
方法2:
代码如下:
1 2 | <code> delete a from #T a left join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null</code> |
方法3:
delete a from #T a where ID not in (select min(ID) from #T where Name=a.Name)
方法4(注:ID为唯一时可用):
delete a from #T a where ID not in(select min(ID)from #T group by Name)
方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)>0
方法6:
delete a from #T a where ID<>(select top 1 ID from #T where Name=a.name order by ID)
方法7:
代码如下:
1 2 3 | <code> delete a from #T a where ID>any(select ID from #T where Name=a.Name) select * from #T</code> |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持512笔记!
注:关于SQL Server SQL去除重复记录的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释