gpt4 book ai didi

sql-server - 合并两个表并覆盖先前存在的行

转载 作者:行者123 更新时间:2023-12-05 01:46:59 26 4
gpt4 key购买 nike

我希望将两个表联合在一起,但如果表 1 中的“电子邮件”与表 2 中的“电子邮件”相匹配,那么表 2 中的数据将被提取。这个功能可以吗?

表1

Name | Email   | Status
A | a@a.com | 1
B | b@b.com | 2
C | c@c.com | 1

表2

Name | Email   | Status
C | c@c.com | 2
D | d@d.com | 1
E | e@e.com | 2

结果表

Name | Email   | Status
A | a@a.com | 1
B | b@b.com | 2
C | c@c.com | 2
D | d@d.com | 1
E | e@e.com | 2

最佳答案

解决此问题的一种方法是对 table1 执行 SELECT,并对 table2 执行 WHERE NOT IN 以过滤从 table1 中选择的行,以便没有行存在于 table2 中的将是该结果的一部分——然后该结果可以针对 table2 进行 UNION。

这是一个示例(我的代码中的 TableA 和 TableB):

declare @TableA as Table ( Name VarChar(20), Email VarChar(20), Status INT );
declare @TableB as Table ( Name VarChar(20), Email VarChar(20), Status INT );

insert into @TableA ( Name, Email, Status ) values
( 'A', 'a@a.com', 1 ),
( 'B', 'b@b.com', 2 ),
( 'C', 'c@c.com', 1 )

insert into @TableB ( Name, Email, Status ) values
( 'C', 'c@c.com', 2 ),
( 'D', 'd@d.com', 1 ),
( 'E', 'e@e.com', 2 )

SELECT * FROM @TableA WHERE Email NOT IN ( SELECT DISTINCT Email FROM @TableB )
UNION
SELECT * FROM @TableB

关于sql-server - 合并两个表并覆盖先前存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32974902/

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