原文地址:http://blog.csdn.net/eriato/article/details/17417303

有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出现了重复记录,后面重新加入唯一约束,由于已经有了重复记录,无法添加,需要先删除重复记录。

看了网上的一些删除重复记录的方法(好像都是转载于同一篇文章,至少看了十几篇都是同样的内容),其中一个链接:http://blog.csdn.net/anya/article/details/6407280

自己现在是需要建立多字段唯一约束(非主键),用文中的方法是不行的,反正在SQL Server 2012中是无法通过的。改写了下,如下:

1、查询重复记录:

SELECT * FROM dbo.Table T
WHERE EXISTS (SELECT 字段1, 字段2, 字段3 FROM dbo.TableSign WHERE 字段1= T.字段1 AND 字段2= T.字段2
AND 字段3 = T.字段3 GROUP BY 字段1, 字段2, 字段3 HAVING COUNT(*) > 1)
AND T.SelfID NOT IN (SELECT MIN(SelfID) FROM dbo.Table GROUP BY 字段1, 字段2, 字段3 HAVING COUNT(*) > 1)--其中:字段1, 字段2, 字段3指需要建立唯一约束的三个字段,SelfID指表Table中的一个自增字段。

2、删除重复记录,只保留SelfID最小的记录,也就是第一次插入的记录:

DELETE FROM dbo.TableSign
WHERE SelfID IN(SELECT SelfID FROM dbo.Table TWHERE EXISTS (SELECT 字段1, 字段2, 字段3 FROM dbo.TableSign WHERE 字段1= T.字段1 AND 字段2= T.字段2
AND 字段3 = T.字段3 GROUP BY 字段1, 字段2, 字段3 HAVING COUNT(*) > 1)
AND T.SelfID NOT IN (SELECT MIN(SelfID) FROM dbo.Table GROUP BY 字段1, 字段2, 字段3 HAVING COUNT(*) > 1))

转载于:https://www.cnblogs.com/luodengxiong/p/4997471.html

SQL Server 删除重复记录,只保留一条记录相关推荐

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

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

  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 中删除重复数据只保留一条

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

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

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

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

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

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

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

  8. mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解

    有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...

  9. Oracle删除重复数据只保留一条

    问题描述 merge数据时,找不到唯一的源数据,需要先删除有重复的数据,只保留一条 解决方式 --查找表中多余的重复记录(多个字段) select * from tmp a where (a.料号,a ...

  10. MySql删除重复数据(只保留一条)

    MySql删除重复数据 1. 问题引入 前一段遇到MySql数据重复的问题.由于重复向同一张表导入同一批数据,导致前台展示的数据重复,唯一方便快捷的方法莫过于利用delete操作删除重复数据(已经封板 ...

最新文章

  1. php 实例说明 socket通信机制
  2. Spring之作用域
  3. 树状数组(Binary Indexed Tree) 总结
  4. 数据结构: 排序算法介绍
  5. qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法
  6. 【Python】函数调用外部变量
  7. 从思维导图学习操作系统(二)
  8. Java:汇总堆外数据
  9. docker search
  10. MySQL group-by-modifiers
  11. 如何提高程序员的生产率 (1)
  12. 解决启用GTID binlog新安装完的MySQL提示无法登录
  13. 智能实验室-杀马(Defendio) 4.11.0.790
  14. 任意版本JLink驱动官方下载指引
  15. HCIA物联网初级考试-第二章物联网常用的通信技术
  16. 【排序】八大排序算法简介及它们各自的特点总结
  17. Vue3 - 不再支持 IE11,到底为什么?
  18. 2022年3月11号黑马培训的第一天
  19. 科技云报道:车云协同,云计算下一个主战场?
  20. hqchartPy2数据对接教程7-指标引用

热门文章

  1. Linux_Makefile模板
  2. 计算机网络的运用在什么时候,离散时间排队系统及其在计算机网络中的应用
  3. PHP脚本管理kvm,kvm管理脚本
  4. Linux ls信息给qt gui,如何使用Qt 4把ls命令的结果显示到GUI界面上去?
  5. lxml安装_Beautiful Soup的安装和使用
  6. drupal7 php版本,让Drupal7识别您的模块
  7. N-API中的Promise功能的使用
  8. php 编译安装降解,对php编译安装的修正
  9. 2020牛客多校第一场B虚树+质数筛+换根dp
  10. 封装成vla函数_不知道怎么封装代码?看看这几种设计模式吧!