我正在使用SQL Server 2005。 ' a; i+ Z [! w4 [6 C6 A我有一张这样的桌子-+ _6 L5 }2 q+ O1 _5 ^% b4 e, A F! S
ID Name a a a二 b二 b3 c4 d4 d在这里,我想删除所有重复的项目,只保留一个例子作为例子- 4 C4 L) M0 R' c: ~ID Name a2 b3 c4 d我可以很容易地将另一个标志列添加到这个表中并拥有唯一的数字,然后删除重复的记录。然而,我想知道是否可以删除重复的记录 而无需 在该表中 3 M) S3 b# k' q添加额外列 。& v2 `, V* u0 T
另外,如果只能使用查询句来完成此操作。不要使用存储过程或临时表。 0 ?, B% c7 Y+ {" L0 D( \ d3 p U+ \ ( n- m8 g: v6 Y; c( F7 _, W) U解决方案: & X# j2 R5 ?/ y 在CTE中使用ROW_NUMBER在保留唯一行的同时,可以删除重复值。 # U; ?5 ~- k% N4 X N$ _# aWITH q AS ( SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID ID Name FROM ATable)DELETE FROM q WHERE RN >