在配置单元中的 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
我尝试执行此查询,但显然配置单元不支持 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