MSSQL·按照某个字段重复删除旧的一条数据
原创
©著作权归作者所有:来自51CTO博客作者SCscHero的原创作品,请联系作者获取转载授权,否则将追究法律责任
阅文时长 | | 0.22分钟 | 字数统计 | | 364字符 |
主要内容 | | 1、引言&背景 2、T-SQL编写 3、声明与参考资料 |
『MSSQL·按照某个字段重复删除旧的一条数据』 |
编写人 | | SCscHero | 编写时间 | | 2021/7/29 PM11:54 |
文章类型 | | 系列 | 完成度 | | 已完成 |
座右铭 | 每一个伟大的事业,都有一个微不足道的开始。 |
一、引言&背景 完成度:100%
a) 应对问题
DB中某张表的数据被插入了两条,将根据字段SN来判断是否重复,若重复则根据字段Time来删除小的那一条。
b) 问题分析
需要满足以下两点:
- 根据字段SN来判断是否重复。
- 重复则根据字段Time来删除小的一条。
二、T-SQL编写 完成度:100%
先确认下要删除的条数和内容:
SELECT * FROM [NeedDeleteTable] [Ori] INNER JOIN (
SELECT SN,MIN(Time) AS minDate FROM [NeedDeleteTable] GROUP BY SN HAVING COUNT(SN) > 1
) minRes ON [Ori].SN = minRes.SN AND Ori.Time = minRes.minDate
再进行删除操作
DELETE [Ori] FROM [NeedDeleteTable] [Ori] INNER JOIN (
SELECT SN,MIN(Time) AS minDate FROM [NeedDeleteTable] GROUP BY SN HAVING COUNT(SN) > 1
) minRes ON [Ori].SN = minRes.SN AND Ori.Time = minRes.minDate
三、声明与参考资料 完成度:100%
原创博文,未经许可请勿转载。
如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!