在配置单元中的 case when 子句中使用子查询的替代选项

Alternate option for using subquery in case when clause in hive

我尝试执行此查询,但显然配置单元不支持 from 子句以外的任何地方的子查询。我可以使用任何解决方法吗?

SELECT id1,
       id2,
           CASE
               WHEN EXISTS
                       (SELECT id3
                        FROM BlacklistedIds
                        WHERE id3 = "abcde") THEN 'ignore'
               ELSE 'null'
            END AS id3
 FROM BIG_TABLE

您可以将其重写为左连接:

SELECT id1, id2,
       if(tt.id3 is not null, 'ignore', 'null') AS id3
 FROM BIG_TABLE t
 left join BlacklistedIds tt on t.id3 = tt.id3