CASE在HiveQL中有条件时



我在将一个案例带入HiveQL时遇到了麻烦。

我有一个列的数据:如果列是NULL = FALSE如果列是PEOPLE = TRUE。它返回所有结果为TRUE。

我的角色怎么了?

SELECT 
id,
datetime,
CASE 
WHEN tb_people !="" THEN 'TRUE'
ELSE 'FALSE'
END
FROM <BD>.<TABLE>

!=""只检查空白字符串。""NULL是两个不同的东西。因此,您要查找的内容是:

SELECT 
id,
datetime,
CASE 
WHEN tb_people IS NOT NULL THEN 'TRUE'
ELSE 'FALSE'
END
FROM <BD>.<TABLE>

我还建议使用布尔值truefalse,而不是字符串字面值。这将允许您将整个case语句替换为ifnotnull(tb_people)https://hive.apache.org/javadocs/r3.0.0/api/org/apache/hadoop/hive/ql/exec/vector/expressions/IsNotNull.html。

相关内容

  • 没有找到相关文章

最新更新