gpt4 book ai didi

sql - 仅使用一个查询删除重复记录

转载 作者:行者123 更新时间:2023-12-04 11:30:23 25 4
gpt4 key购买 nike

我正在使用 SQL Server 2005。

我有一张这样的 table ——

ID    Name
1 a
1 a
1 a
2 b
2 b
3 c
4 d
4 d

在此,我想删除所有重复条目并仅保留一个实例作为-
ID     Name
1 a
2 b
3 c
4 d

我可以通过向该表添加另一个标识列并在其中包含唯一编号然后删除重复记录来轻松完成此操作。但是我想知道是否可以删除重复记录 不添加额外的列 到这张 table 。

此外,如果这可以仅使用一个查询语句来完成。即 不使用存储过程或临时表。

最佳答案

使用 ROW_NUMBERCTE允许您在保留唯一行的同时删除重复值。

WITH q AS (
SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID )
, ID
, Name
FROM ATable
)
DELETE FROM q WHERE RN > 1

关于sql - 仅使用一个查询删除重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com