如何删除PK为唯一标识字段的重复记录



我想知道如何删除PK是唯一标识符的重复记录。我必须根据一组字段中的重复值删除记录。我们可以使用选项使用Row_Number()获取临时表,除了第一行,我们可以删除其余或记录。但我想构建一个线性查询。有什么建议吗?

您可以使用CTE来完成此操作,而无需查看表结构。这里是基本的SQL

;with cte as
(
    select *, row_number() over(partition by yourfields order by yourfields) rn
    from yourTable
)
delete
from cte
where rn > 1
delete from table t using table ta where ta.dup_field=t.dup_field and t.pk >ta.pk
;

最新更新