有没有一种方法可以从 table 服务器中的单个列中删除重复项?

Is there a way to delete duplicates from a table with a single column in SQL Server?

有没有一种方法可以像这样从 table 中删除重复的行,而无需删除 table 并使用不同的行重新创建它?

DROP TABLE IF EXISTS #temp;

CREATE TABLE #temp (id INT);

INSERT INTO #temp
VALUES (1), (2), (2), (2), (3), (3);

使用 CTE 和 ROW_NUMBER 按您正在查看的指定列分组可以干净地删除重复值,因为 ROW_NUMBER 使用 PARTITION BY 聚合的重复值递增计数。当在排序时发现新分组时,它将 ROW_NUMBER 重置为 1,从下一个不同分组值的记录开始。

 WITH CTE AS (
 SELECT *,
 ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1) AS RN
 FROM #temp
 )

 DELETE FROM CTE WHERE RN<>1

这是你的答案,首先我们必须找到所有重新编码

DELETE t 
FROM #temp t 
WHERE (SELECT count(1) 
    FROM #temp t1 
    WHERE t.id =t1.id )
    >1

希望您能找到最佳解决方案。