SQL server删除重复记录的行
时间: 2023-05-25 19:03:18 浏览: 158
SQL删除重复行
可以使用如下SQL语句来删除SQL Server表中的重复记录的行:
```SQL
WITH CTE AS
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY column1, column2, ... columnN ORDER BY Id) AS RN
FROM Table
)
DELETE FROM CTE WHERE RN > 1;
```
其中,CTE是公共表表达式,它用于在单个SELECT、INSERT、UPDATE、DELETE语句中定义一个临时表。
在这里,我们使用ROW_NUMBER()函数来给每个重复的记录行分配一个序号。PARTITION BY子句指定按照哪些列进行分区,ORDER BY子句指定用于排序的列。
最后,我们将CTE作为DELETE语句的子查询,并仅保留序号为1的行,从而删除了所有重复的记录行。
阅读全文