SQL Server 删除重复记录,只保留一条记录
原文地址: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 删除重复记录,只保留一条记录相关推荐
- mysql 删除重复数据只保留一条记录
删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id fr ...
- sql 删除重复数据 只保留一条
oracle 删除重复数据 只保留一条 DELETE from t_ows_compelete_rfc WHERE operation_no is null IN ( SELECT operation ...
- mysql 删除重复数据 保留一个_MySQL学习笔记-删除重复数据只保留一条
有这样一张表,表数据及结果如下: 可以看出,school_name的字段值有重复数据(Abraham Lincoln High School 和Agoura High School分别出现两次),那么 ...
- MySQL 中删除重复数据只保留一条
WechatIMG256.jpeg 场景 在许多条记录里,存在着些相同的记录,使用SQL语句,删除掉重复项只保留一条. 数据模型 half_demon 半妖表 id name weapon skill ...
- MySQL中删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...
- mysql去除重复数据保留一条_MySQL中删除重复数据只保留一条
用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...
- mysql sql 语句 查询重复数据 并删除重复数据 只保留一条
**#例1:根据手机号customer_id查询所有重复的数据** SELECT* FROMaad_apply_main WHEREcustomer_id IN (SELECTcustomer_idF ...
- mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...
- Oracle删除重复数据只保留一条
问题描述 merge数据时,找不到唯一的源数据,需要先删除有重复的数据,只保留一条 解决方式 --查找表中多余的重复记录(多个字段) select * from tmp a where (a.料号,a ...
- MySql删除重复数据(只保留一条)
MySql删除重复数据 1. 问题引入 前一段遇到MySql数据重复的问题.由于重复向同一张表导入同一批数据,导致前台展示的数据重复,唯一方便快捷的方法莫过于利用delete操作删除重复数据(已经封板 ...
最新文章
- php 实例说明 socket通信机制
- Spring之作用域
- 树状数组(Binary Indexed Tree) 总结
- 数据结构: 排序算法介绍
- qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法
- 【Python】函数调用外部变量
- 从思维导图学习操作系统(二)
- Java:汇总堆外数据
- docker search
- MySQL group-by-modifiers
- 如何提高程序员的生产率 (1)
- 解决启用GTID binlog新安装完的MySQL提示无法登录
- 智能实验室-杀马(Defendio) 4.11.0.790
- 任意版本JLink驱动官方下载指引
- HCIA物联网初级考试-第二章物联网常用的通信技术
- 【排序】八大排序算法简介及它们各自的特点总结
- Vue3 - 不再支持 IE11,到底为什么?
- 2022年3月11号黑马培训的第一天
- 科技云报道:车云协同,云计算下一个主战场?
- hqchartPy2数据对接教程7-指标引用
热门文章
- Linux_Makefile模板
- 计算机网络的运用在什么时候,离散时间排队系统及其在计算机网络中的应用
- PHP脚本管理kvm,kvm管理脚本
- Linux ls信息给qt gui,如何使用Qt 4把ls命令的结果显示到GUI界面上去?
- lxml安装_Beautiful Soup的安装和使用
- drupal7 php版本,让Drupal7识别您的模块
- N-API中的Promise功能的使用
- php 编译安装降解,对php编译安装的修正
- 2020牛客多校第一场B虚树+质数筛+换根dp
- 封装成vla函数_不知道怎么封装代码?看看这几种设计模式吧!