【问题标题】:Combining two tables and replacing values with unique identifier组合两个表并用唯一标识符替换值
【发布时间】:2019-08-05 13:52:30
【问题描述】:

我有两个表,它们都包含数据集的唯一标识符。一张表包含我需要的所有数据,包括电子邮件地址。另一个表有大约 3,000 行,其中某些记录具有不同的电子邮件地址。如何将这两个表与 SQL 结合起来,并简单地替换那些在第二个表中有记录的电子邮件地址,但保留第一个表中除电子邮件地址之外的所有数据?

【问题讨论】:

  • 左连接,合并

标签: sql salesforce-marketing-cloud


【解决方案1】:
SELECT COALESCE(EMAIL2, EMAIL1)
FROM TABLE1 T1
LEFT JOIN TABLE2 T2
on T1.ID = T2.ID

这会将电子邮件地址设置为第二个表中的电子邮件(如果存在),否则将保留第一个表中的电子邮件地址。

【讨论】:

  • 谢谢,这就是我所拥有的。 SELECT COALESCE(UABMCEMail.Email, UABEmail.EMAIL) FROM UABEmail LEFT JOIN UABMCEmail ON UABEmail.LDAP_ID = UABMCEmail.LDAP_ID UABMCEmail 是只有大约 3,000 封电子邮件的表,但是,它们都已经在 UABEmail 中有电子邮件,它们不为空。我收到“错误:没有为 'Qry' 的第 1 列指定列名。”
  • 选择 COALESCE(UABMCEMail.Email, UABEmail.EMAIL) 作为电子邮件。您需要添加别名
  • 效果很好,现在我如何将其余字段从表 1 (UABEmail) 移到新表中。
  • 好吧,你可以选择一个新表。还是要更新两个原始表之一?
  • 我在 Salesforce Marketing Cloud 中,因此 SQL 正在使用这两个表(数据扩展)并创建新的第三个。
【解决方案2】:

您要更新第一个表吗?如果是这样:

update table1 inner join table2 
on table2.id = table1.id
set table1.email = table2.email
where table2.email is not null

【讨论】:

    猜你喜欢
    • 2021-12-16
    • 2021-08-25
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2022-01-24
    • 2014-02-15
    相关资源
    最近更新 更多