回答

收藏

只使用查询删除重复记录

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

我正在使用SQL Server 2005。" H* v) L9 w. O/ R" R" n. J
我有一张这样的桌子-) p1 ]. {  A! a
ID    Name     a     a     a二       b二       b3       c4      d4      d在这里,我想删除所有重复的项目,只保留一个例子作为例子-
" u! u# ^& I; U% L" j% T) t. `ID     Name      a2        b3        c4        d我可以很容易地将另一个标志列添加到这个表中并拥有唯一的数字,然后删除重复的记录。然而,我想知道是否可以删除重复的记录 而无需    在该表中3 l% x+ w5 i  B2 Q" O
添加额外列    。+ P6 N2 J& ]# z1 X2 H- e
另外,如果只能使用查询句来完成此操作。不要使用存储过程或临时表。
1 {9 X* A+ q- m, Y! o5 U' ]" n$ Z, A% Q                                                                ! h4 u2 a* ~1 ~9 c1 {
    解决方案:                                                                & D+ @' w- @( `( m* ?  u( ?, G
                                                                在CTE中使用ROW_NUMBER在保留唯一行的同时,可以删除重复值。
/ V+ o& ~. ]" U# a  Q6 _! mWITH q AS (  SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID         ID  Name  FROM   ATable)DELETE FROM q WHERE RN >
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则