我有多个具有非常相似模式的表,只有一列可以有不同的名称。我想做一些复杂的计算使用配置单元,并希望有一个可能的参数化所有表的代码。由于某些原因,我无法使用python、scala等语言对查询进行参数化,所以决定使用纯hivesql。
我想有条件地选择适当的列,但似乎hive会计算条件表达式/语句的所有部分,而不考虑条件。我做错什么了?
DROP TABLE IF EXISTS `so_sample`;
CREATE TABLE `so_sample` (
`app_version` string
);
SELECT
if (true, app_version, software_version) AS firmware
FROM so_sample
;
输出:
错误:编译语句时出错:失败:semanticexception[error 10004]:行2:25无效的表别名或列引用“software\u version”:(可能的列名为:app\u version)(state=42000,code=10004)
向帕维尔问好
1条答案
按热度按时间wrrgggsh1#
尝试使用regex选择具有不同名称的列,有关更多信息,请参阅手册,不要忘记