sql2005,删除某个字段重复的记录,随机留下一条记录
2013-06-13 14:29
183 查看
drop table #tmp --删除临时表
create table #tmp --创建临时表
(
number numeric(18, 0)
)
insert into #tmp
select number from cght group by number having count(*)>1 --将number 字段有重复记录的内容插入到临时表
select * from #tmp
declare @count int
declare @i int
declare @i1 int
select @i=count(*) from #tmp
set @i1=0
while @i1<@i
begin
select @count =count(*) from cght where number in(select top(1) number from #tmp order by number) --获得临时表中第一条记录在原表中有多少条重复记录
delete top(@count-1) from cght where number in(select top(1) number from #tmp order by number)--删除原表的重复记录,留一条
delete from #tmp where number in (select top(1) number from #tmp order by number) --删除临时表的第一条记录
set @i1=@i1+1
end
create table #tmp --创建临时表
(
number numeric(18, 0)
)
insert into #tmp
select number from cght group by number having count(*)>1 --将number 字段有重复记录的内容插入到临时表
select * from #tmp
declare @count int
declare @i int
declare @i1 int
select @i=count(*) from #tmp
set @i1=0
while @i1<@i
begin
select @count =count(*) from cght where number in(select top(1) number from #tmp order by number) --获得临时表中第一条记录在原表中有多少条重复记录
delete top(@count-1) from cght where number in(select top(1) number from #tmp order by number)--删除原表的重复记录,留一条
delete from #tmp where number in (select top(1) number from #tmp order by number) --删除临时表的第一条记录
set @i1=@i1+1
end
相关文章推荐
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- sql 2005删除重复记录 保留其中一条
- SQL删除某些字段重复的记录(只保留一条)
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- sql 多个字段分组,删除重复记录,保留ID最小的一条
- SQL删除某些字段重复的记录(只保留一条)
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- sql server 删除某个字段重复的记录并留下一条记录
- sql 删除表中多余的重复记录(多个字段),只保留一条记录
- 【转】SQL删除某些字段重复的记录(只保留一条)
- SQL删除表中的重复记录(多个字段),只留一条。
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- 【转】SQL删除重复记录,只保留其中一条
- SQL删除数据表中重复记录中的一条
- SQL 删除表中的重复记录,只保留其中一条。
- mysql,oracle里删除重复记录,只保留一条(除了自增长字段,其他的字段完全相同为相同记录)
- sql删除表中重复记录只保留一条记录
- sql 删除重复记录,只保留ID号最小(或最大)的一条
- 使用一条SQL语句删除表中重复记录