WITH CTE AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY [列名1], [列名2],...,[列名n] ORDER BY (SELECT NULL)) RN
FROM [表名]
)
DELETE FROM CTE WHERE RN > 1;
其中,[列名1], [列名2],…,[列名n] 是需要去重的列名,可以根据实际情况进行修改。这个语句会保留每组重复数据中的第一条记录,并删除其他记录。请确保备份好数据后再执行此操作。
本文介绍了一个SQL查询语句,利用WITHCTE(CommonTableExpression)和ROW_NUMBER()函数对指定列进行去重,仅保留每组第一条记录,但执行前务必备份数据以防止数据丢失。
WITH CTE AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY [列名1], [列名2],...,[列名n] ORDER BY (SELECT NULL)) RN
FROM [表名]
)
DELETE FROM CTE WHERE RN > 1;
其中,[列名1], [列名2],…,[列名n] 是需要去重的列名,可以根据实际情况进行修改。这个语句会保留每组重复数据中的第一条记录,并删除其他记录。请确保备份好数据后再执行此操作。
5556

被折叠的 条评论
为什么被折叠?