sql学习过程中,碰到了删除冗余数据的问题。经过搜索,查找,终于解决了此问题
第一种,数据全部重复,如下图:
需要得到以下的结果:
删除重复的记录(重复记录保留1条),可以按以下方法删除
seleet distinct * into #Tmp from TableName
drop table TableName
select * into TableName from #Tmp
drop table #Tmp
第二种,数据部分字段重复,ID不重复 ,如下图:
需要得到以下结果:
下面的语句可以达到要求:
delete 表 where id not in(
SELECT MAX(id) AS id FROM 表 GROUP BY rows) --- 删除重复行
select * from 表 where id in(
SELECT MAX(id) AS id FROM 表 GROUP BY rows) --重复行只查询一条
注:如有错误,多多指教!