DECLARE @Count INT = 1
WHILE @Count > 0
BEGIN
DELETE TB FROM TableName TB
WHERE TB.ID IN (SELECT MIN(ID) FROM TableName TB2
GROUP BY TB2.Column1,TB2.Column2,...TB2.ColumnN
HAVING COUNT(1) > 1);
SET @Count = @@ROWCOUNT;
END

这里使用了循环删除,并不是最优的方法,欢迎园友不吝批评指正。


其实还有一种方法是先查询重复的数据,然后在重复数据中保留一条。 下面用例子说明。

例如表City有如下的数据:

查询出重复的数据,Id只保留其中一个

SELECT MIN(Id) Id,Name FROM dbo.City
GROUP BY Name
HAVING COUNT(1) >  1

然后使用删除时Join上面的表

DELETE C FROM City C
JOIN (SELECT MIN(Id) Id,Name FROM dbo.CityGROUP BY NameHAVING COUNT(1) >  1
) TMP ON C.Name = TMP.Name AND C.Id <> TMP.Id

另外一种方法是园友Adeal2008指出的使用row_number()来处理,感谢Adeal2008提供思路,这也是一种方法。

转载于:https://www.cnblogs.com/godbell/p/8727804.html

SQL删除指定条件的重复数据,只保留一条相关推荐

  1. SQL删除表中的重复记录只保留其中一条,最简单的方法:ROW_NUMBER()

    在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?. 要求:删除表中多余的重复记录,且保留 id 最小的那一条记录. CREATE TABLE #temp_data( id BI ...

  2. sql 删除重复数据 只保留一条

    oracle 删除重复数据 只保留一条 DELETE from t_ows_compelete_rfc WHERE operation_no is null IN ( SELECT operation ...

  3. mysql 删除重复数据 保留一个_MySQL学习笔记-删除重复数据只保留一条

    有这样一张表,表数据及结果如下: 可以看出,school_name的字段值有重复数据(Abraham Lincoln High School 和Agoura High School分别出现两次),那么 ...

  4. MySQL批量删除所有重复数据只保留一条

    -- 1.创建数据库及t_user表 CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8;USE `test`;DROP T ...

  5. mysql 删除重复数据只保留一条记录

    删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id fr ...

  6. MySQL 中删除重复数据只保留一条

    WechatIMG256.jpeg 场景 在许多条记录里,存在着些相同的记录,使用SQL语句,删除掉重复项只保留一条. 数据模型 half_demon 半妖表 id name weapon skill ...

  7. MySQL中删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...

  8. mysql去除重复数据保留一条_MySQL中删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...

  9. mysql sql 语句 查询重复数据 并删除重复数据 只保留一条

    **#例1:根据手机号customer_id查询所有重复的数据** SELECT* FROMaad_apply_main WHEREcustomer_id IN (SELECTcustomer_idF ...

最新文章

  1. php屏蔽审查元素,前端:屏蔽F12审查元素,禁止修改页面代码
  2. SAP QM初阶事务代码QA11对检验批做UD时出现很多UD Code的选择集?
  3. centos配置yum本地源
  4. MySQL—不相关子查询(多行子查询)
  5. java调用webservice_WebService学习总结(四)——调用第三方提供的webService服务
  6. 多线程程序中操作的原子性
  7. numpy维度交换_如何将2个不同维度的numpy数组相乘
  8. mysql root命令_MySQL 修改 root 密码命令
  9. diabetes影响因子2017_Journal of Diabetes
  10. 药学专业报计算机一级有用吗,全网友泣泪劝阻!高考结束之后,什么专业千万不能报?...
  11. Python数据可视化1.5 可视化图像
  12. kotlin 对话框_使用Kotlin的Android警报对话框
  13. python 导入自己写的类_Python3.7模块的定义、导入、优化操作图文完全详解,附视频教程...
  14. XMPP即时通讯协议使用(一)——Openfire安装
  15. 批量重命名文件、图片、去除文件名括号
  16. 临时执法卡点的设置原理与选址分析
  17. TypeScript 类型声明文件.d.ts
  18. 笔记本电脑合盖无法休眠,开盖黑屏
  19. jQuery属性操作之.val()
  20. 标量/向量/矩阵求导方法

热门文章

  1. 深度学习未来的发展点
  2. 利用photoshop创建一个3D绚丽的文…
  3. H5支付宝获取淘宝地址(完整代码)
  4. 疫情当前,如何提高远程办公的效率,远程办公工具分享
  5. 如何关闭和启用Nagle算法
  6. we learn考试能切屏吗_托福说 | 当留学生必备技能成托福口语真题,这题你能拿满分吗?!...
  7. tar zxvf 简单了解
  8. Java 算法 删除多余括号
  9. 新手直播3个不冷场互动技巧,直播必备干货丨国仁网络
  10. 阿里云企业版安骑士与基础版功能差异