如何在MSSQL删除多条重复数据

原创 2006年05月19日 11:50:00
id ColA ColB
1 12345 ABCD
2

12345

ABCD
当出现这种数据的时候,想要删除某条数据,怎么操作呢?
关键是找出重复的其中的一条,
如下:

SELECT max(id) as id, a.cola,a.colB
FROM a join 
(
SELECT cola,colb   FROM a  GROUP BY cola, colb
HAVING COUNT(*> 1)  b
on a.filecode = b.filecode and a.colb=b.colb
group by a.col1,a.colB


然后删除即可.

删除数据库中重复数据的几个方法
  数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
  方法一
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子句中省去此列)

 

【Vegas原创】用虚拟表删除多条重复数据

select * into #tmp from trvperson  group by id,parentID,tableName,url,target,expanded  having coun...

Mssql 传入表名参数,调用表中的多条数据

在网上找了一些例子感觉并不是很理想,

数据批量删除/同时删除多条数据

  • 2009年10月13日 10:51
  • 1.88MB
  • 下载

【Maven+SSM】Mybatis动态SQL拼接根据对象删除单条或者多条数据

前言: 上一篇文章写了对于多个属性的查询的Mybatis写法。实际是对一个对象的操作方式。 正文: 本文就补充写对一个list的操作吧。 先看如何删除一行数据。然后在看如何删除多行数据。...

DB2 一次性删除多条数据

DB2数据库中,删除表中的重复数据,可以使用如下语句: delete from ( select 1 from (select a,b,c,row_number()               ...

php向mysql数据库查询、插入、删除较多条数据

最近项目做了个数据库备份。需要用php对项目30天前数据做增量备份。记录一下其中处理较多数据查询、插入、删除的解决办法。 一、查询 由于项目三十天之前的数据实在是太多。查询时甚至出现了,内存不足的...

MSSQL 中使用modify()方法,此方法使用XML DML语句在XML 数据中插入,更新或删除节点

Modify()修改XML 文档的内容,使用此方法可以修改XML类型变量或列的内容,此使用XML DML 语句在XML数据中 插入,更新或者删除节点.XML数据类型的modify()只能在update...
  • ws_hgo
  • ws_hgo
  • 2011年10月25日 17:24
  • 2132

ThinkPHP3.2.3选择多个CheckBox删除多条数据的实现(使用AJAX提交数据)

这个自己写了一部分,也借鉴了下别人的,功能有很多不足(有时间我会继续改进),如果有心人路过看到还望能留言解决下,谢了(在底部我会列出来)。 HTML页面: 关键的两个标签 a class="bt...

MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化

本文转自:http://hi.baidu.com/momodetang/blog/item/5c0891435fd1090f9313c617.html ...

MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化

SQL Server上面删除1.6亿条记录,不能用Truncate(因为只是删除其中少部分数据)。 经过实验,每次删除400万条要花1.5 - 3小时,而且是越到后面越慢,正常的话,需要大约10...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在MSSQL删除多条重复数据
举报原因:
原因补充:

(最多只允许输入30个字)