回答

收藏

只使用查询删除重复记录

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

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

本版积分规则