SqlServer删除表中重复的记录并保留一条

--删除表 t 中字段 d、e、f 同时重复的数据,只保留一条
DELETE FROM dbo.t WHERE Id IN(
    --根据 d、e、f 三个字段查询出重复的数据
    SELECT id FROM
    (
        SELECT *,OrderNo=ROW_NUMBER() OVER(PARTITION BY d,e,f ORDER BY id) 
        FROM dbo.t
    ) Tmp
    WHERE OrderNo>1
)

你可能感兴趣的:(数据库,sqlserver,microsoft,数据库)