SQL 删除表中的重复记录,只保留其中一条。
2018-05-25 17:35
302 查看
方法一
第一步:查询重复记录SELECT * FROM TableName --表名 WHERE RepeatFiled IN ( SELECT RepeatFiled --重复字段 FROM TableName GROUP BY RepeatFiled HAVING COUNT(RepeatFiled) > 1 )
把重复条数大于1的全部查询出来。
第二步:删除重复记录,只保留一条
SELECT * FROM TableName WHERE RepeatFiled IN ( SELECT RepeatFiled FROM TableName GROUP BY RepeatFiled HAVING COUNT(RepeatFiled) > 1 AND ID NOT IN ( SELECT MIN(ID) FROM TableName GROUP RepeatFiled HAVING COUNT(RepeatFiled) > 1 ) )
在第一步的基础上继续过滤,把最小值留下。
方法二
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0
相关文章推荐
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- SQL 删除重复记录,并保留其中一条
- 【转】SQL删除重复记录,只保留其中一条
- SQL 删除重复记录,并保留其中一条
- sql 2005删除重复记录 保留其中一条
- SQL 删除重复记录,并保留其中一条
- sql 多个字段分组,删除重复记录,保留ID最小的一条
- 如何删除表中的重复记录只保留其中一条?
- mysql 删除表中的重复记录,只保留其中一条
- sql 删除重复记录,只保留ID号最小(或最大)的一条
- 如何删除表中的重复记录只保留其中一条?
- 关于mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句理解
- SQL删除某些字段重复的记录(只保留一条)
- 【转】SQL删除某些字段重复的记录(只保留一条)
- 如何删除表中的重复记录只保留其中一条
- SQL语句实现删除重复记录并只保留一条
- 删除表中的重复记录只保留其中一条
- 如何删除表中的重复记录只保留其中一条?
- mysql删除重复记录,但是要保留其中一条
- sql 删除表中多余的重复记录(多个字段),只保留一条记录