现在表中存在多条重复记录
A         B          C         D
---   ----    ----    ----
A123    123456      北京        天天
A123    123456      北京        天天
A123    123456      北京        天天
A124    123457      北京        
A124    123457      北京              
A125    123458      上海        圆圆
A125    123458      上海
现在就是要删除重复记录(A,B,C字段重复),如果D不为空的话,则优先保存D不为空的记录
结果如下:
A         B          C         D
---   ----    ----    ----
A123    123456      北京        天天     
A124    123457      北京              
A125    123458      上海        圆圆

方法:-

go
create table tb(A nvarchar(8), B nvarchar(8), C nvarchar(16), D nvarchar(16))

insert tb select 'A123', '123456', '北京', '天天' 
union all select 'A123', '123456', '北京', '天天' 
union all select 'A123', '123456', '北京', '天天' 
union all select 'A124', '123457', '北京', null         
union all select 'A124', '123457', '北京', null                 
union all select 'A125', '123458', '上海', '圆圆' 
union all select 'A125', '123458', '上海', null  

--select * from tb

select A,B,C,max(D) as D into #T from tb group by A,B,C

truncate table tb

insert tb select * from #T

select * from tb

drop table #T
drop table tb

方法:二

select a.* from t a where d=(select top 1 d from t where a=a.a and b=a.b and c=a.c)

--取最小
select a.* from t a where d=(select min(d) from t where a=a.a and b=a.b and c=a.c)

--取最大
select a.* from t a where d=(select max(d) from t where a=a.a and b=a.b and c=a.c)

--随机取
select a.* from t a where d=(select top 1 d from t where a=a.a and b=a.b and c=a.c order by newid())

转载于:https://www.cnblogs.com/yfcomeon/archive/2007/10/22/932840.html

删除重复记录10.22相关推荐

  1. 用SQL删除重复记录的N种方法

    例如:    id           name         value    1               a                 pp    2               a  ...

  2. Oracle几种查找和删除重复记录的方法总结

    转载自:http://www.csdn.net/article/1970-01-01/278287 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能 ...

  3. 几个删除重复记录的SQL语句

    几个删除重复记录的SQL语句 在大的数据库应用中,经常因为各种原因遇到重复的记录,造成数据的冗余和维护上的不便. 1.用rowid方法 2.用group by方法 3.用distinct方法 1.用r ...

  4. mysql scrapy 重复数据_MySQL大数据量表中删除重复记录

    MySQL大数据量表中删除重复记录 最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近10万条,大小接近1个G,又在我自己的渣渣本本上,查询速度十分不理想, ...

  5. mysql语句中怎么去重复_mysql中删除重复记录sql语句

    在sql中我们经常会碰到有重复的一些数据,下面我来介绍在mysql中删除重复记录的多种方法,有需要的朋友可参考参考. 删除重复记录方法一: 1. 新建一个临时表 代码如下 复制代码 create ta ...

  6. mysql删除重复记录语句的方法

    例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name ...

  7. oracle 视图去重复,CSS_Oracle几种查找和删除重复记录的方法总结,平时工作中可能会遇到当试图 - phpStudy...

    Oracle几种查找和删除重复记录的方法总结 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删 ...

  8. java重复录入怎么删除,删除重复记录的方法

    学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实 ...

  9. 删除 重复数据 mysql_mysql删除重复记录语句的方法

    例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name ...

  10. mysql删除重复记录语句

    查询及删除重复记录的SQL语句 例如:  id name value  1 a pp  2 a pp  3 b iii  4 b pp  5 b pp  6 c pp  7 c pp  8 c iii ...

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
  2. 用筛选法求100之内的素数
  3. 电商优秀设计作品展示
  4. 砸115亿元入局!后知后觉的欧洲重金建设AI,为赶中超美
  5. 【GNN】图神经网络综述
  6. (转)FOF、MOM投资模式与金融科技应用展望
  7. 简单的程序工具:matlab实现香农编码
  8. 金蝶云星空根据采购价目表写入自定义采购入库单是否价目表字段
  9. 2021年烷基化工艺考试内容及烷基化工艺考试资料
  10. 重标极差分析法matlab,重标极差(RS)分析法估计Hurst指数的有效性检验.doc
  11. 长江存储推全新3D NAND架构 挑战三星存储
  12. 【推荐系统】协同过滤
  13. 048 《20-30岁,我拿十年做什么》小感
  14. 谷歌地图各级比例尺及空间分辨率
  15. 每日程序C语言37-圈子报数问题
  16. TP-Link家用路由器上网与防蹭网
  17. Unity3D摄像机跟随人物
  18. 智能学习硬件小程序开发,提升学习感受
  19. Qt_Opencv安装
  20. cesium 加载热力图

热门文章

  1. MatConvNet 相关函数解释说明
  2. python求解在给定递减数组中寻找两个数和等于定值,乘积最小
  3. java求解LeetCode题目,实现求解数组中的majority element
  4. python常用的几种字符串替换函数strip、replace、sub
  5. 为什么交叉熵损失函数可以用作逻辑回归的损失函数?
  6. html+css响应式布局
  7. 电气计算机基础知识,电气基础知识
  8. Java Set操作
  9. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_01-项目概述-功能构架-项目背景...
  10. 小D课堂 - 新版本微服务springcloud+Docker教程_4-04 高级篇幅之服务间调用之负载均衡策略调整实战...