SQL SERVER 2005删除重复数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SERVER 2005删除重复数据相关的知识,希望对你有一定的参考价值。
SQL SERVER 2005
要求删除2个字段重复的数据 只保留ID小的一条
别从网上贴Oracle的 我这个是SQL2005
我自己处理好了
就是觉得效率有点低
kas68310 你没看题 是2个字段重复
masterwangrui 我自己的写法跟你一样 不过效率有点低 表数据量大了
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删除重复数据的主要内容,如果未能解决你的问题,请参考以下文章
MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重