回答

收藏

只使用查询删除重复记录

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

我正在使用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 >
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则