sql - 删除重复记录保留原始记录

标签 sql sql-server sql-server-2005

Possible Duplicate:
How to delete duplicate rows with SQL?

我有一个没有主键的表和一个包含重复条目的列。我想删除所有重复项,在表中保留一个条目。请帮忙

最佳答案

由于您使用的是 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

关于sql - 删除重复记录保留原始记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817919/

相关文章:

sql - 在 SQL 中将多行合并为具有单独列的单行

.net - SqlCommand查询的长度有什么限制

sql-server - 随着时间的推移,如何将数据库部分迁移到新系统?

sql-server - SQL Server 数据是如何返回的

sql - 尝试使用 xp_cmdshell 移动文件时访问被拒绝

sql-server-2005 - SSIS 中的 Oracle 到 SQL 2005 DATETIME 字段溢出

sql - MS Access 查询设计中的此查询中出现缺少运算符错误

sql - PostgreSQL 按 jsonb 字段搜索

sql - 此查询竞争条件是否免费?

sql-server - 使用sql中的日期函数获取天/月/年之前的过去日期