0

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

4

2 回答 2

6

你可以使用CTE来做这个,不用看你的表结构这里是基本的SQL

;with cte as
(
    select *, row_number() over(partition by yourfields order by yourfields) rn
    from yourTable
)
delete
from cte
where rn > 1
于 2012-09-07T17:42:39.733 回答
0
delete from table t using table ta where ta.dup_field=t.dup_field and t.pk >ta.pk
;
于 2012-09-07T20:25:43.750 回答