gpt4 book ai didi

sql-server - 如何删除重复的行?

转载 作者:行者123 更新时间:2023-12-01 16:14:07 30 4
gpt4 key购买 nike

我需要从相当大的 SQL Server 表(即 300,000 多行)中删除重复行。

当然,由于 RowID 标识字段的存在,这些行不会是完美的重复。

我的表格

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null

我该怎么做?

最佳答案

假设没有空值,您可以GROUP BY唯一的列,并SELECTMIN(或MAX) RowId作为要保留的行。然后,删除所有没有行 ID 的内容:

DELETE FROM MyTable
LEFT OUTER JOIN (
SELECT MIN(RowId) as RowId, Col1, Col2, Col3
FROM MyTable
GROUP BY Col1, Col2, Col3
) as KeepRows ON
MyTable.RowId = KeepRows.RowId
WHERE
KeepRows.RowId IS NULL

如果您有 GUID 而不是整数,则可以替换

MIN(RowId)

CONVERT(uniqueidentifier, MIN(CONVERT(char(36), MyGuidColumn)))

关于sql-server - 如何删除重复的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932/

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