您的位置:首页 > 数据库

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐