【发布时间】:2019-03-01 21:51:51
【问题描述】:
我想选择 A 列等于“X”或 B 列等于“X”的数据 但并非两者都等于'X'。 HQL中有这样的功能吗?
【问题讨论】:
我想选择 A 列等于“X”或 B 列等于“X”的数据 但并非两者都等于'X'。 HQL中有这样的功能吗?
【问题讨论】:
尝试下面的查询而不是表名使用你的表名
SELECT * FROM (
SELECT
CASE WHEN COLUMNA='X' AND COLUMNB<>'X' THEN COLUMNA
CASE WHEN COLUMNA<>'X' AND COLUMNB='X' THEN COLUMNB
END AS XORCOMBO
FROM TABLENAME
)X
WHERE XORCOMBO IS NOT NULL
【讨论】:
Hive 确实具有按位异或算术运算符。它可以用于任何数字数据类型,例如。 A ^ B.
更多细节可以在hive官方文档中找到: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-ArithmeticOperators
【讨论】: