进行左连接时,在右侧 table 标记所有缺失值的记录

Flagging records with all missing values on right table when doing a left join

我有两个 table 代表不同年份 Left Table: 2019Right Table: 2018 的客户数据。其中一些客户在前一年不存在,我的假设是,在进行左连接时,这些客户将缺少来自右 table 的所有字段值。有没有办法标记这些客户(或记录)?下面是我的查询

create table joinedTable as
select a.unique_number, a.monthly_spend, b.unique_number, b.email_preference, b.client_tier,
from table2019 as a
left join table2018 as b
on a.unique_number = b.unique_number

下面是所需的输出。

unique_number monthly_spend email_prefernce client_tier Flag
12AB56FG 2000 Yes Special 0
32AB56FG 1200 Yes Special 0
42AB56FG 2010 Yes Special 0
56AB56HG 3000 Yes Special 0
72AB58FG 6000 NULL NULL 1
92AB56FG 800 NULL NULL 1

只需使用 case 表达式:

create table joinedTable as
    select a.unique_number, a.monthly_spend, b.unique_number, 
           b.email_preference, b.client_tier,
           (case when b.unique_number is null then 1 else 0 end) as flag
    from table2019 a left join
         table2018 b
         on a.unique_number = b.unique_number;