回答

收藏

只使用查询删除重复记录

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

我正在使用SQL Server 2005。
/ L8 e$ k; T& K& `& C" ~我有一张这样的桌子-0 O# E( V$ n5 F! I6 B# [* f6 Y
ID    Name     a     a     a二       b二       b3       c4      d4      d在这里,我想删除所有重复的项目,只保留一个例子作为例子-- }9 E5 ^- F0 D- I) Z
ID     Name      a2        b3        c4        d我可以很容易地将另一个标志列添加到这个表中并拥有唯一的数字,然后删除重复的记录。然而,我想知道是否可以删除重复的记录 而无需    在该表中# K+ j$ Z, B  d  F8 }5 f% a: |
添加额外列    。
, x" y8 M# P. v7 Q3 m+ q) q& N另外,如果只能使用查询句来完成此操作。不要使用存储过程或临时表。9 X# }# k/ T* n3 O1 r9 y
                                                               
  ~  l/ K: k; |6 j. Z    解决方案:                                                                ' W7 j" a2 u, }3 ^/ |" `3 U) W  l1 ^2 n
                                                                在CTE中使用ROW_NUMBER在保留唯一行的同时,可以删除重复值。8 S( v1 |, t! ~/ S
WITH q AS (  SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID         ID  Name  FROM   ATable)DELETE FROM q WHERE RN >
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则