SQL Server中删除重复数据的几个方法

来源:asp之家 时间:2009-10-30 10:50:00 

数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……

方法一


以下为引用的内容:

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子句中省去此列)


标签:SQLServer,删除,重复数据
0
投稿

猜你喜欢

  • asp如何制作一个倒计时的程序?

    2010-06-29 21:25:00
  • 43个应当避免的Web设计错误

    2007-09-30 12:57:00
  • 将HTML自动转为JS代码

    2010-03-17 20:49:00
  • Persits AspJpeg 1.8+ 轻松实现透明文字去锯齿水印

    2009-03-20 14:03:00
  • VBScript中变量作用域

    2007-11-02 10:03:00
  • 教你使用SQL Server数据库进行网络链接

    2009-01-13 13:41:00
  • Oracle 实现类似SQL Server中自增字段的一个办法

    2009-08-02 07:51:00
  • 如何使用ADO.NET连接数据库?

    2010-06-03 10:52:00
  • 如何更改mysql命令下提示信息

    2010-10-25 19:48:00
  • asp如何制作一个安全的页面?

    2010-06-29 21:22:00
  • 大容量SQL Server数据库迁移偏方

    2011-05-05 08:18:00
  • 关于SQL Server数据库备份和恢复特性介绍

    2009-02-19 16:57:00
  • Oracle Portal及其门户网站开发概述

    2010-07-20 13:30:00
  • 如何使用数组来显示下拉菜单?

    2010-05-16 15:19:00
  • CSS教程:关于网页图片的属性的介绍

    2008-10-31 12:02:00
  • P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)

    2011-04-02 10:42:00
  • 如何隐藏IP地址的最后一位

    2011-04-04 16:38:00
  • 如何解决MySQL的客户端不支持鉴定协议

    2008-11-27 17:10:00
  • asp之自动闭合HTML/ubb标签函数附简单注释

    2011-04-04 11:18:00
  • INPUT的对齐问题

    2008-05-24 08:32:00
  • asp之家 网络编程 m.aspxhome.com