sqlserver删除表中的重复数据

  • SqlServer删除表中重复记录

转载链接:https://www.bbsmax.com/A/1O5Ee12G57/

SqlServer删除表中重复记录

重复记录:有两个意义上的重复记录

一是完全重复的记录,也即所有字段均重复的记录;

二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

  --查询无重复记录的结果集,并将结果集保存到临时表#Tmpselect distinct * into #Tmp from tableName--删除表tableNamedrop table tableName--将临时表#Tmp数据全部插入表tableNameselect * into tableName from #Tmp--删除临时表drop table #Tmp

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

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

  --将tableName中的全部记录插入临时表#Tmp,并增加行号字段select identity(int,1,1) as autoID, * into #Tmp from tableName--将临时表#Tmp中的无重复记录插入临时表#Tmp2(min(autoID)....group by Name,autoID-实现保留Name重复的记录中的第一条)select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

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

通过上面操作并将tableName中无重复的结果集保存到了临时表#Tmp2,可以通过删除表tableName,然后再将临时表#Tmp2记录插入tableName实现删除

tableName中重复的记录(只保留重复记录的第一条记录)

注意:tableName中没有autoID字段,可以select去除autoID字段实现

SQLServer删除表中重复记录相关推荐

  1. sql删除表中重复记录_SQL从SQL表中删除重复行的不同方法

    sql删除表中重复记录 This article explains the process of performing SQL delete activity for duplicate rows f ...

  2. [转]删除表中重复记录

    我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样. 一. ...

  3. oracle 删除表中重复记录,并保留一条

    1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having cou ...

  4. mysql重复数据只取一条数据_My sql 中删除表中重复记录?只保留一条

    匿名用户 1级 2018-08-20 回答 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 sel ...

  5. Oracle如何删除表中重复记录

    1  引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的 ...

  6. sqlserver 删除表中重复的数据

    --在删除之前可以先查看一下结果: SELECT max(主键ID),列1,列2...列n FROM [TABLE表] group by 列1,列2...列n--删除重复的数据,保留主键最大的那条数据 ...

  7. 查询和删除表中重复数据sql语句

    查询和删除表中重复数据sql语句 (一) 1.查询表中重复数据.select * from people where peopleId in (select   peopleId  from   pe ...

  8. MySql删除表中重复数据

    有一表中存在大量重复数据 在此记录下我删除表内重复数据的方法 -- 新增测试表 create table basic_farmer ( id INT(11), user_name VARCHAR(25 ...

  9. 如何删除表中重复的wid

    select yhbh,count(wid)  from ZC_YH group by yhbh having count(wid)>1; delete from zc_yh where wid ...

最新文章

  1. android 自定义dialog 定时关闭,Android编程实现自定义Dialog的大小自动控制方法示例...
  2. 编程开发之--java多线程学习总结(5)
  3. 父母已身作则,静待花开
  4. java中super关键字_Java中关键字super与this的区别
  5. CODEVS-2018-反病毒软件-线段树
  6. Python3的bytes/str之别
  7. 教程-上传应用公钥并获取支付宝公钥
  8. 【chorme插件开发】第一节:chrome内核浏览器插件开发的说明
  9. pv,svogi,vxgi,各自的优缺点在哪,ue4还有可能把svogi加进去吗
  10. dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
  11. nginx+双tomcat集群负载均衡(一台机器)
  12. 阿里文娱搜索排序算法实践和思考(附交流视频和PPT下载链接)
  13. AI 脑补宋明清皇帝长相,四大模型构想真实五官
  14. 计算机毕业设计ssm火车站售票管理系统
  15. matlab里面fig文件坐标轴名称单位,MATLAB如何提取fig文件中的xyz坐标值
  16. Python 实现Mac 屏幕截图
  17. openpyxl,重写Worksheet
  18. elasticsearch-8.0.0报错总结(ES)-持续更新
  19. 手机软件开发入门 [转]
  20. HTTP RPC Dubbo hsf Spring-cloud 图解比较

热门文章

  1. 水风险指数定义及计算:水资源压力等
  2. 阿里二面:了解 MySQL 事务底层原理吗
  3. 2022数学建模国赛降至,整理了一些很不错的在线网站分享一下
  4. Linux之硬件基础篇
  5. 大数据技术发展史:大数据的前世今生
  6. ASCII码表在线查询
  7. [Java]--一章看懂java封装、继承、多态
  8. 联想thinkpad E470无线网络无法使用问题解决方法
  9. csgo调出参数_csgo设置参数设置怎么调出来
  10. U-Boot移植与总结 P2020篇