1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId)>1)
3、查找表中多余的重复记录(多个字段)
select * from ec_dnfhb where xh in (select min(xh) from ec_dnfhb group by ckhbm,cnpbm,cdayf having count(ckhbm)>1)
4、删除表中多余的重复记录(多个字段)
select * from ec_dnfhb where xh in (select min(xh) from ec_dnfhb group by ckhbm,cnpbm,cdayf having count(ckhbm)>1)
5、存贮过程解决
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