gpt4 book ai didi

sql - 删除特定列中具有重复列数据的行

转载 作者:行者123 更新时间:2023-12-04 21:47:40 25 4
gpt4 key购买 nike

我有一个我们称之为 Table1 的表,其中有一堆垃圾数据并且没有唯一标识符列。

我想从表 1 中选择一些列并将数据传输到表 2。但是,传输后,我需要从 Table2 中删除其中 3 列中有重复项的行。

假设我在 Table2 中有一行包含 [FirstName][LastName][CompanyName][ City],以及被转移的[State]。我只想保留具有 [FirstName][LastName][CompanyName] 的唯一组合的行。更令人困惑的是,[LastName] 和/或 [CompanyName] 可能包含 NULL 值。我怎么能做到这一点?在此先感谢您的帮助。

最佳答案

可以使用 distinct 关键字创建独特的条目。

select distinct 
FirstName,
LastName,
CompanyName
from MyTable

因此,如果您发出以下命令,您只会向新表添加不同的值

insert into newTable
(
FirstName,
LastName,
CompanyName
)
select distinct
FirstName,
LastName,
CompanyName
from MyTable
where not exists (
select 1 from newTable
where newTable.FirstName = MyTable.FirstName
and newTable.LastName = MyTable.LastName
and newTable.CompanyName = MyTable.CompanyName
)

另一种向表中添加不同新值的好方法是使用“MERGE”命令。

merge newtable as target
using (select distinct
FirstName,
LastName,
CompanyName
from MyTable
) as source
on target.FirstName = target.FirstName
and target.LastName = target.LastName
and target.CompanyName = target.CompanyName

when not matched by target then
insert (FirstName,
LastName,
CompanyName)
values (target.FirstName,
target.LastName,
target.CompanyName);

MERGE 命令为您提供了控制何时同步表的选项。

关于sql - 删除特定列中具有重复列数据的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423120/

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