数据重复,主要分为两种:

一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如身份证号字段重复,而其他字段不一定重复或都重复可以忽略,毕竟我们只要保证身份证号在表中数据唯一。

解决方法:

(1)完全重复的记录

得到无重复的记录

select distinct * from tableName

删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

(2)部分重复的记录

发生这种重复的原因是表设计不周产生的,可以通过增加唯一索引列解决。

这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下:(假设有重复的字段为身份证号,要求得到这身份证号唯一的结果集)

-- 增加索引
select identity(int,1,1) as autoID, * into #Tmp from tableName
-- 取出不重复的索引
select min(autoID) as autoID into #Tmp2 from #Tmp group by 身份证号
-- 根据不重复的索引取出不重复的数据
select * from #Tmp where autoID in(select autoID from #tmp2)

最后一个select即得到了身份证号不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

通常,我们可能不仅仅是为了这次数据获取,可能主要的还是对这张表重复数据做清洗,删除重复数据,可以加上下面语句,做一次delete:

-- 从第一张表中删除重复数据
delete from #Tmp where autoID not in(select autoID from #tmp2)

数据库中删除重复数据相关推荐

  1. 数据库中删除重复数据并保留一条。

    删除数据,并保留一条,保留的是伪列rowid最小的一条数据,如果有其他的需求,可以稍微自己改一改就可以保留自己要想的数据 . delete from table_name a where a.name ...

  2. 在 MySQL 数据库中删除重复记录的步骤

    在 MySQL 数据库中删除重复记录的步骤 当我们在处理数据库中的数据时,有时候会出现重复记录的情况,这些重复记录会影响数据的正确性,需要将其删除.下面是在 MySQL 数据库中删除重复记录的步骤: ...

  3. MSSQL如何在没有主键的表中删除重复数据

    MSSQL如何在没有主键的表中删除重复数据 原文:MSSQL如何在没有主键的表中删除重复数据 为了对重复数据进行实验,下面建一个设计不太好(没有主键)表并插入了一些重复数据: create datab ...

  4. db2删除完全相同的重复数据_[数据库]DB2删除重复数据

    [数据库]DB2删除重复数据 0 2016-05-03 12:00:03 有时候DB2建表时不设置主键,就可能存在脏数据,例如:两条一样数据重复存在,这时候就需要将重复记录删除,然后留下一条记录.CR ...

  5. 查询数据库中的重复数据记录

    ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_d ...

  6. MySQL中删除重复数据

    2019独角兽企业重金招聘Python工程师标准>>> 参考网页 SQL删除重复数据只保留一条 https://blog.csdn.net/anya/article/details/ ...

  7. Excel中删除重复数据(用VBA代码)

    请仔细阅读并修改相关数据.我推荐使用第二种方法,是我修改的,很好用,第三种情况用得比较少.  第一种情况保留不重复的记录行,重复的只保留一行. 1.打开有重复数据的EXCEL 2.Alt+F11 打开 ...

  8. Access中删除重复数据行

    1.什么是重复数据行: 1>.两笔记录的每一个字段都相同(表中没有主键): 2>.两笔记录的特定字段均相同,其余字段不同(表中可能有主键,也可能没有主键): 2.如何删除重复数据行: 1& ...

  9. Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析

    数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE `user` (`id` bigint(255) NOT NULL AUTO_INCREMENT,`name` varch ...

最新文章

  1. 域内主机间之共享文件(夹)访问
  2. python装饰器类-基于类的python装饰器
  3. 5 判断数据是否存在_Trie树实现:100亿URL中判断某个URL是否存在
  4. c语言位运算符读音,C语言六种位运算符
  5. Http / Get 和 Post 区别
  6. Java 冒泡排序的实现
  7. Java Object有哪些公用方法?
  8. springboot 获取登录浏览器_java项目部署到linux服务器,微信小程序后台springboot项目部署到云服务器(图文详解)...
  9. addEventListener的click和onclick的区别
  10. uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程
  11. 有个程序媛女朋友是一种什么样的感觉?
  12. 手机编写python脚本_python调用adb脚本来实现群控安卓手机初探
  13. 将矩阵转为一行_理解矩阵乘法
  14. 连接 GIS Servers报错“Proxy server got bad address from remote server ...”
  15. 原生js写小球向右移动移动一定距离停止运动及小球加速运动
  16. 【拜小白opencv】15-利用ROI将一幅图像叠加到另一幅图像的指定位置
  17. 每天学习10句英语-第四天
  18. UTF和uncode
  19. ssh 远程执行脚本(自己总结)
  20. Python获取法定节假日

热门文章

  1. C++入门小程序:数字竞猜游戏
  2. list构建数据库父子关系
  3. python学习之由文件名批量获取姓名和学号
  4. Spark-echarts数据可视化
  5. 【OpenCV】红绿灯检测C++Demo实现
  6. 在计算机栏显示桌面,直观:让win7在任务栏的左下角显示桌面_计算机的基本知识_IT /计算机_信息...
  7. html轮播图3d翻转,jQuery自适应-3D旋转轮播图
  8. 计算机网络02(交换机,路由器原理)
  9. 现代软件工程作业8-11(朱翔宇)
  10. Linux基础命令3