--在删除之前可以先查看一下结果:
SELECT max(主键ID),列1,列2...列n FROM [TABLE表] group by 列1,列2...列n--删除重复的数据,保留主键最大的那条数据(如果需要保留主键最小的数据,则是:min(主键ID) ...)
delete from [TABLE表] where [主键ID] NOT IN (SELECT max(主键ID) FROM [TABLE表] group by 列1,列2...列n)--注: 删除除了最大主键ID以外的所有的数据
举个栗子,有表及数据如下(共10条):
查看我需要的结果(共3条):
保留ID为8、9、10的数据,删除其他的数据(共删除7条):
验证去掉重复后的结果(共3条):
核心代码:
--删除重复的数据
DELETE FROM [Student] WHERE ID NOT IN
(SELECT max([ID])[ID] FROM [Student] group by [Name],[Age])