我有一个没有主键的表和一个重复条目的列。我想删除所有重复项,在表中保留一个条目。请帮忙
答案 0 :(得分:4)
由于您使用的是SQL Server 2005+,因此可以使用CTE执行此操作:
;WITH cte AS
(
SELECT ROW_NUMBER() OVER (PARTITION BY Col1, Col2, Col3 ORDER BY (SELECT 0)) RN
FROM yourtable
)
DELETE FROM cte
WHERE RN > 1
答案 1 :(得分:1)
将Row_Number函数与Partition By所有字段一起使用,并仅保留RN = 1的行。
答案 2 :(得分:0)
创建存储过程和过程内部:
如果您遇到问题,我必须为您编写sp。