如何从表中删除重复项并在sql server中只保留id最高的那个?

时间:2011-06-08 10:34:37

标签: sql-server sql-server-2008

我有一个具有唯一ID的表,然后是一些字段。我想删除所有dupliacte行,只保留一个,id最高的那个。

例如假设有一个包含3个字段的表:RECORD_IDFIELD_ONEFIELD_TWO

这个查询允许我删除FIELD_ONEFIELD_TWO具有相同值的所有记录,但RECORD_ID以外的记录除外?

1 个答案:

答案 0 :(得分:0)

实测值:

with cte
as
(
    select *, row_number() over(partition by FIELD_ONE, FIELD_TWO order by RECORD_ID desc) RowNumber
    from TestTable
)
delete cte
where RowNumber > 1