我有一个包含约100列的SQL Server表,其中包括列Id
和CreationDate
。由于其初始设计中的严格限制,现在有许多重复的行(即,所有列中的值都相同的行)。
您能建议一个脚本来删除那些重复的行吗?
此外,用最新的CreationDate
选择所有不同ID的脚本是什么?
谢谢
答案 0 :(得分:0)
您可以使用以下脚本从Microsoft SQL Server表中删除重复的行:
SELECT DISTINCT *
INTO duplicate_table
FROM original_table
GROUP BY key_value
HAVING COUNT(key_value) > 1
DELETE original_table
WHERE key_value
IN (SELECT key_value
FROM duplicate_table)
INSERT original_table
SELECT *
FROM duplicate_table
DROP TABLE duplicate_table
执行此脚本时,将遵循以下步骤:
它将原始表中任何重复行的一个实例移至重复表。
它从原始表中删除所有驻留在重复表中的行。
它将重复表中的行移回到原始表中。
它将删除重复表。