sql 删除重复记录没有大小关系时,重复值将如何处理呢? 下文就将为您介绍sql删除重复记录没有大小关系时重复值的处理方法,供您参考,希望对您有所启迪。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的任城网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
--> --> (roy)生成
if not object_id(tempdb..#t) is null
drop table #t
go
create table #t([num] int,[name] nvarchar(1))
insert #t
select 1,na union all
select 1,na union all
select 1,na union all
select 2,nb union all
select 2,nb
go方法1:
if object_id(tempdb..#) is not null
drop table #
select distinct * into # from #t--排除重复记录结果集生成临时表#
truncate table #t--清空表
insert #t select * from # --把临时表#插入到表#t中
--查看结果
select * from #t
/*
num name
----------- ----
1 a
2 b
(2 行受影响)#p#
*/
--重新执行测试数据后用方法2
方法2:
alter table #t add id int identity--新增标识列
go
delete a from #t a where exists(select 1 from #t where num=a.num and name=a.name and id>a.id)--只保留一条记录
go
alter table #t drop column id--删除标识列--查看结果
select * from #t
/*
num name
----------- ----
1 a
2 b
(2 行受影响)
*/
--重新执行测试数据后用方法3
方法3:
declare roy_cursor cursor local for#p#
select count(1)-1,num,name from #t group by num,name having count(1)>1
declare @con int,@num int,@name nvarchar(1)
open roy_cursor
fetch next from roy_cursor into @con,@num,@name
while @@fetch_status=0
begin
set rowcount @con;
delete #t where num=@num and name=@name
set rowcount 0;
fetch next from roy_cursor into @con,@num,@name
end
close roy_cursor
deallocate roy_cursor--查看结果
select * from #t
/*
num name
----------- ----
1 a
2 b
(2 行受影响)
*/
//利用存储过程
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//使用函数
select distinct * into #tmp from tablename
drop table tablename
select * into tablename from #tmp
drop table #tmp
本文转载自【web优化网】新闻中心:http://www.web-youhua.com/html/web-youhua-198601001.html
本文标题:sql删除重复记录没有大小关系时重复值的处理方法
文章转载:http://www.csdahua.cn/qtweb/news35/298935.html
成都网站优化推广公司_创新互联,为您提供企业网站制作、做网站、外贸建站、网站建设、python、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网