ARR Asked: 2020-02-12 08:15:10 +0800 CST 2020-02-12 08:15:10 +0800 CST 2020-02-12 08:15:10 +0800 CST 删除 SQL Server 2012 中的重复记录 772 我有以下查询: SELECT * FROM CLIENTES 这是我的结果 我需要消除重复项,在ID_CLIENTE7075593 日期不同的情况下,我必须在这种情况下留下最旧的日期,因为日期大于记录 #10,所以必须删除记录 #9 sql-server 2 Answers Voted Best Answer gbianchi 2020-02-12T08:19:14+08:002020-02-12T08:19:14+08:00 为此,没有什么比将结果分组(只剩下一个)并取最小的日期更好的了,因为它是一个数字,所以问题更少。 Select territorial, id_cliente, min(fecha) from CLIENTES group by territorial, id_cliente 有了这个,你说要按相同的区域分组,然后按 id_client 分组(这就是每个客户只有一行的原因)然后,你只保留最小日期,就像它们在 ansi 中一样,但是反过来(当一个人以那种格式保存日期时,比如一个称为ansi的数字,它们以yyyymmdd格式保存,因为否则以后很难对它们进行排序),用一分钟,我们得到最小的...... MasterMix 2020-02-13T10:18:00+08:002020-02-13T10:18:00+08:00 如何从 SQL Server 中的表中删除重复记录的详细信息: 1.- 第一步是获取每个重复客户端的最旧 Id,客户端 Id 上有一个 Min,并按表的字段分组以获得重复项。 2.- 第二步是实际删除重复记录。 具体脚本如下: BEGIN TRANSACTION DELETE FROM [CLIENTES] WHERE ID_CLIENTE NOT IN ( SELECT MIN(ID_CLIENTE ) FROM [CLIENTES] GROUP BY CamposDeLaTabla ) ROLLBACK TRANSACTION 3.- 如果一切正常,注释回滚代码并输入 COMMIT TRANSACTION 问候,我希望并且有用。
为此,没有什么比将结果分组(只剩下一个)并取最小的日期更好的了,因为它是一个数字,所以问题更少。
有了这个,你说要按相同的区域分组,然后按 id_client 分组(这就是每个客户只有一行的原因)然后,你只保留最小日期,就像它们在 ansi 中一样,但是反过来(当一个人以那种格式保存日期时,比如一个称为ansi的数字,它们以yyyymmdd格式保存,因为否则以后很难对它们进行排序),用一分钟,我们得到最小的......
如何从 SQL Server 中的表中删除重复记录的详细信息:
1.- 第一步是获取每个重复客户端的最旧 Id,客户端 Id 上有一个 Min,并按表的字段分组以获得重复项。
2.- 第二步是实际删除重复记录。
具体脚本如下:
3.- 如果一切正常,注释回滚代码并输入 COMMIT TRANSACTION
问候,我希望并且有用。