阅文时长

| 0.22分钟

字数统计

| 364字符

主要内容

| 1、引言&背景 2、T-SQL编写 3、声明与参考资料

『MSSQL·按照某个字段重复删除旧的一条数据』

编写人

| SCscHero

编写时间

| 2021/7/29 PM11:54

文章类型

| 系列

完成度

| 已完成

座右铭

每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题

DB中某张表的数据被插入了两条,将根据字段SN来判断是否重复,若重复则根据字段Time来删除小的那一条。

b) 问题分析

需要满足以下两点:

  1. 根据字段SN来判断是否重复。
  2. 重复则根据字段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%

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!