在我的表格中,我有一些重复的记录。我只想删除它们,然后在表中保留一个条目。
与表A中的[SourceGradeId]匹配的列。
有人可以给我展示一个非常简单的删除查询,而不是更改表吗?
答案 0 :(得分:2)
您可以在下面的查询中运行,以基于表A的“ SourceGradeId”列删除重复的记录。 请注意,因为这将删除很多行,请在执行此操作之前备份数据
With Duplicates as
(
select * , row_number() over(partition by SourceGradeId order by SourceGradeId ) rownumber
from A
) delete from Duplicates where rownumber!=1
答案 1 :(得分:2)
使用row_number。假定存在另一列或多列有助于识别要保留的列。
;with r as (
select SourceGradeId,
row_number() over (partition by SourceGradeId order by <other col>) rn
from A
)
delete r where rn>1