gpt4 book ai didi

sql - 合并两个表的内容而不重复内容

转载 作者:行者123 更新时间:2023-12-02 15:35:10 28 4
gpt4 key购买 nike

我有两个相同的 SQL Server 表(SOURCEDESTINATION),每个表中都有很多列。我想将表 SOURCE 中不存在于表 DESTINATION 中的行插入到表 DESTINATION 中。如果除时间戳、计数列和整数主键之外的所有列都匹配,我将定义两行之间的相等性。因此,我想将 SOURCE 中不存在于 DESTINATION 中的所有行插入到 DESTINATION 中,忽略计数、时间戳和主键列。

我该怎么做?

感谢大家的贡献!我选择使用 Merge 命令,因为它的结构允许在一条语句中进行更新和插入,而我需要单独进行更新。

这是有效的代码:

Merge 
into DESTINATION as D
using SOURCE as S
on (
D.Col1 = S.Col1
and D.Col2 = S.Col2
and D.Col3 = S.Col3
)
WHEN MATCHED
THEN UPDATE SET D.Count = S.Count
WHEN NOT MATCHED THEN
INSERT (Col1, Col2, Col3, Count, timestamp)
VALUES (S.Col1, S.Col2, S.Col3, S.Count, S.timestamp);

注意:当我第一次写这个问题时,我将表命名为 AAABBB。为了清楚起见,我将 AAA 的名称编辑并更改为 SOURCE,将 BBB 更改为 DESTINATION

最佳答案

为此目的使用 Select 语句,因为 Sql Server 2008 已过时,而不是 Select 您可以使用 Merge 语句:

引用:

http://technet.microsoft.com/en-us/library/bb510625.aspx http://weblogs.sqlteam.com/peterl/archive/2007/09/20/Example-of-MERGE-in-SQL-Server-2008.aspx

关于sql - 合并两个表的内容而不重复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747337/

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