回答

收藏

只使用查询删除重复记录

技术问答 技术问答 185 人阅读 | 0 人回复 | 2023-09-14

我正在使用SQL Server 2005。
9 S/ `& c8 g$ K0 T我有一张这样的桌子-! d8 O8 J6 [# `! e0 x- F7 N/ ], z
ID    Name     a     a     a二       b二       b3       c4      d4      d在这里,我想删除所有重复的项目,只保留一个例子作为例子-4 F+ n( v6 e9 h8 [
ID     Name      a2        b3        c4        d我可以很容易地将另一个标志列添加到这个表中并拥有唯一的数字,然后删除重复的记录。然而,我想知道是否可以删除重复的记录 而无需    在该表中
2 Q8 F- D  L- L4 k( ?1 Y添加额外列    。  `1 j4 z* L& [& m( z, L  g$ z
另外,如果只能使用查询句来完成此操作。不要使用存储过程或临时表。7 w1 K6 K, R' B$ V" ]3 H3 x
                                                                / b- d. |) R- F4 x7 z' Q- c
    解决方案:                                                                % J6 {8 H5 E) {" x' E( R3 q5 h: s
                                                                在CTE中使用ROW_NUMBER在保留唯一行的同时,可以删除重复值。; Q7 s8 ]3 Q# w; D
WITH q AS (  SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID         ID  Name  FROM   ATable)DELETE FROM q WHERE RN >
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则