CASE WHEN 在 HiveQL 中的条件
Posted
技术标签:
【中文标题】CASE WHEN 在 HiveQL 中的条件【英文标题】:CASE WHEN conditional in HiveQL 【发布时间】:2021-08-23 13:40:42 【问题描述】:我无法将案例带入 HiveQL。
我有一列包含数据: 如果列是 NULL = FALSE 如果该列是 PEOPLE = TRUE。它将所有结果返回为 TRUE。
我的角色有什么问题?
SELECT
id,
datetime,
CASE
WHEN tb_people !="" THEN 'TRUE'
ELSE 'FALSE'
END
FROM <BD>.<TABLE>
【问题讨论】:
如果所有结果都是TRUE,这意味着你的列中没有空字符串或NULL,因为NULL会触发ELSE部分,以及空字符串 【参考方案1】:!=""
仅检查空白字符串。 ""
和 NULL
是两个不同的东西。因此,您正在寻找的是:
SELECT
id,
datetime,
CASE
WHEN tb_people IS NOT NULL THEN 'TRUE'
ELSE 'FALSE'
END
FROM <BD>.<TABLE>
我还建议使用布尔值 true
和 false
而不是字符串文字。这可以让你用ifnotnull(tb_people)
https://hive.apache.org/javadocs/r3.0.0/api/org/apache/hadoop/hive/ql/exec/vector/expressions/IsNotNull.html替换你的整个case语句。
【讨论】:
以上是关于CASE WHEN 在 HiveQL 中的条件的主要内容,如果未能解决你的问题,请参考以下文章
SQL中的条件判断语句(case when zhen if,ifnull)用法
语法SQL中的case when then else end用法-解决一个字段根据条件取不同值