when子句中使用子查询的替代选项

fhg3lkii  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(484)

我试着执行这个查询,但是很明显,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
gojuced7

gojuced71#

可以将其重写为左连接:

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

相关问题