当前位置:首页>> 网站建设知识>> 网站建设知识

全文搜索

精华导读

·网站知识:虚拟中的真实:虚拟主机应用初探
·如何做好互联网的策划
·自动分词与中文搜索引擎
·网页文章的优化
·网站的一些基础小知识
·把网站变成卖场
·细说选择.cn域名的七大理由
·网站性感域名十大原则
·大型商务网站的SEO优化误区
·导致搜索引擎收录困难的5种原因
·网站建设中meta标签之详解
·网页制作中Web网页安全色谱
·网页设计中HTML常范的五个错误
·如何建立网站地图(site map)
·网站建设时如何选购虚拟主机?
·中国国家顶级域名和国际域名有什么区别?
·企业建设网站域名可以使用哪些字?
·建设网站时企业如何准备建网站资料?
·DIV+CSS建立标准WEB网页的好处

最新发表

·html和xml有什么差别
·falsh中调用外部swf动画
·网站建设之外贸网站建设知识
·如何做网站-网站建设知识
·企业网站建设知识——成为好网站的要
·网站建设知识心得
·.net中页面之间传递值的几种方法
·ASP.NET中水晶报表的使用
·用ASP.NET/C#连接Access和SQL Server数据库
·在.NET 应用程序中用System.Web.Mail 发送电子邮件
·最佳实践 ADO.NET实用经验无保留曝光
·一些很酷的.Net技巧
·sql数据库小知识:where、group by、having 区别
·修改sqlserver默认端口并实现程序连接
·web制作中的sqlserver、unicode、utf-8
·嵌套游标的方式来删除表中重复的数据
·查询某表中的有字段名称和字段类型
·网站知识:web特殊符号大全
·Asp基础教程之内置对象的使用

删除sql数据库中的重复数据

文章来源:网站建设 文章编辑:admin 添加时间:2009-5-7 15:37:12

下面是删除sql数据库中的重复数据的一些方法
方法一

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

方法二

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from tableName


就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)

最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)


[ ]

首页 评论 打印 刷新 返回顶部 关闭
【相关文章】  【相关评论】
网站建设中让SQL飞起来
sql检查数据库表是否存在函数
SQL语言的分类及语法
SQL语言快速入门
高手是怎样炼成的:精妙SQL语句介绍