gpt4 book ai didi

sql - 如何去除表中的重复记录?

转载 作者:行者123 更新时间:2023-12-02 06:44:13 25 4
gpt4 key购买 nike

我在一个测试数据库中有一个表,显然有人在运行 INSERT 脚本来设置它时对触发有点太高兴了。架构如下所示:

ID UNIQUEIDENTIFIER
TYPE_INT SMALLINT
SYSTEM_VALUE SMALLINT
NAME VARCHAR
MAPPED_VALUE VARCHAR

它应该有几十行。它有大约 200,000 个,其中大部分是重复的,其中 TYPE_INT、SYSTEM_VALUE、NAME 和 MAPPED_VALUE 都相同而 ID 不同。

现在,我可能会编写一个脚本来清理它,在内存中创建一个临时表,使用 INSERT .. SELECT DISTINCT 获取所有唯一值,TRUNCATE 原始表格,然后将所有内容复制回去。但是有没有更简单的方法来做到这一点,比如 DELETE 查询在 WHERE 子句中有一些特殊的东西?

最佳答案

您没有提供表名,但我认为这样的事情应该可行。只留下恰好具有最低 ID 的记录。您可能想先使用 ROLLBACK 进行测试!

BEGIN TRAN
DELETE <table_name>
FROM <table_name> T1
WHERE EXISTS(
SELECT * FROM <table_name> T2
WHERE
T1.TYPE_INT = T2.TYPE_INT AND
T1.SYSTEM_VALUE = T2.SYSTEM_VALUE AND
T1.NAME = T2.NAME AND
T1.MAPPED_VALUE = T2.MAPPED_VALUE AND
T2.ID > T1.ID
)

SELECT * FROM <table_name>

ROLLBACK

关于sql - 如何去除表中的重复记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759672/

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