SQL SERVER 2005删除重复数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER 2005删除重复数据相关的知识,希望对你有一定的参考价值。

SQL SERVER 2005
要求删除2个字段重复的数据 只保留ID小的一条
别从网上贴Oracle的 我这个是SQL2005
我自己处理好了
就是觉得效率有点低
kas68310 你没看题 是2个字段重复
masterwangrui 我自己的写法跟你一样 不过效率有点低 表数据量大了

比如表tab1,删除条件是COL1列重复的,保留最小的.为了更清晰,分两步写.
1.获取同字段中最小的ID,(如果只有一条,算这条的),存入临时表#t
select min(id)mid,col1 into #t from tab1 group by col1
2.将同COL1中不是最小的删除掉.
delete from tab1 where id>(select mid from #t t where t.col1=tab1.col1)
参考技术A delete T
from 表名 AS T
where [ID]<>(select min([ID]) from 表名 where [字段名1]=T.[字段名1] and [字段名2]=T.[字段名2] )
在SQL2005环境下测试通过,且结果正确无误!
参考技术B delete from tab t1
where exists(select 1 from tab where ziduan1 = t1.ziduan1 and t1.ziduan2 = ziduan2 and id
< t1.id)
参考技术C 这样的:
delete from table where id in(
select max(id) as id from table group by 数据重复的字段 having count(*)>1
)
参考技术D 要求该表中存在ID列

Delete A From Tablename(要删除数据的表) AS A
Where ID<>(Select min(ID) From Tablename(要删除数据的表) Where [Column1]=A.[Column1] and [Column2]=A.[Column2] )

以上是关于SQL SERVER 2005删除重复数据的主要内容,如果未能解决你的问题,请参考以下文章

sql 2005 语句 身份号码不重复

sql server 2005将时间转换为分钟[重复]

MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重

sql server新增自增列有重复值(2005 9.0.1399)

怎么样删除SQL SERVER 数据库中重复的数据

SQL SERVER 查询删除重复数据