gpt4 book ai didi

sql - Hive 中 NULLIF 的替换是什么?

转载 作者:行者123 更新时间:2023-12-04 21:03:26 29 4
gpt4 key购买 nike

我想知道NULLIF的替代品是什么在 hive ?我正在使用 COALESCE,但它不符合我的要求。我的查询语句类似于:

COALESCE(A,B,C) AS D
COALESCE将返回第一个 NOT NULL 值。但是我的 A/B/C 包含空白值,因此 COALESCE 没有将该值分配给 D,因为它将空白视为 NOT NULL。但我希望将正确的值分配给 D。

在 SQL 中我可以使用 COALESCE(NULLIF(A,'')......)所以它也会检查空白。我试过 CASE 但它不起作用。

最佳答案

只需使用 case :

select (case when A is null or A = '' then . . . end)

这是标准 SQL,因此它可以在 Hive 和其他地方使用。

对于您的特定问题:
select (case when A is not null and A <> '' then A
when B is not null and B <> '' then B
else C
end)

您实际上可以将其缩短为:
select (case when A <> '' then A
when B <> '' then B
else C
end)

因为 NULL值无法比较。我会使用这个版本,但通常学习 SQL 的人更喜欢带有 not null 的更明确的版本。比较。

关于sql - Hive 中 NULLIF 的替换是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044835/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com