四种SQL语句删除重复记录的方法-数据库-编程文档-人才家园--中国人才库
您所在的位置:中国人才库--人才家园--编程文档--数据库
四种SQL语句删除重复记录的方法
来源: 编辑:duliying 更新日期:2008-8-29 14:40:24 浏览:226 次
问题:如何把具有相同字段的记录删除,只留下一条。   例如:表test里有id,name字段,如果有name相同的记录只留下一条,其余的删除。name的内容不定,相同的记录数不定。   用SQL语句删除重复记录的四种方法:
方法1:   1、将重复的记录记入temp1表   select [标志字段id],count(*) into temp1 from [表名]
group by [标志字段id]
having count(*)>1 软件开发网 www.mscto.com  
2、将不重复的记录记入temp1表   insert temp1
select [标志字段id],count(*) from [表名]
group by [标志字段id]
having count(*)=1   3、作一个包含所有不重复记录的表   select * into temp2 from [表名]
where 标志字段id in(select 标志字段id from temp1)     4、删除重复表:delete [表名]   5、恢复表 insert [表名]
select * from temp2
6、删除临时表 drop table temp1
drop table temp2 软件开发网 www.mscto.com   方法2: declare @max integer,@id integer
declare cur_rows cursor local for
select id,count(*) from 表名 group by id 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 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
      
注:set rowcount @max - 1表示当前缓冲区只容纳@max-1条记录,如果有十条重复的,就刪除10条,一定会留一条的。也可以写成delete from 表名。 &n
 第1页/总3页  第一页 上一页 下一页 最后一页     【发表评论】
昵   称:  (不填写则显示为匿名)
标   题:
内   容:
 
免责声明:网友对此资源信息的评论仅代表个人观点,中国人才库有权删除违乱评论信息!
石家庄广通印刷学校