我正在使用SQL Server 2005。& n- W- D2 R6 q: e3 H
我有一张这样的桌子- $ t% @ s. s6 m/ AID Name a a a二 b二 b3 c4 d4 d在这里,我想删除所有重复的项目,只保留一个例子作为例子-+ z4 M% D* c3 l% S
ID Name a2 b3 c4 d我可以很容易地将另一个标志列添加到这个表中并拥有唯一的数字,然后删除重复的记录。然而,我想知道是否可以删除重复的记录 而无需 在该表中6 @# x; Y7 d5 z: w. D 添加额外列 。$ n; O d; S& D- Q
另外,如果只能使用查询句来完成此操作。不要使用存储过程或临时表。 ; ~1 _2 N& J2 X% A: q( Z: H 4 y$ ]( G# E( e2 I7 y/ {解决方案: ) R" a) X; X% l' V7 c4 \ o
在CTE中使用ROW_NUMBER在保留唯一行的同时,可以删除重复值。 9 |1 ?: @3 {2 e f1 [WITH q AS ( SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID ID Name FROM ATable)DELETE FROM q WHERE RN >