查询:

没有功能的列:

按 ACCOUNTID从表中选择 ACCOUNTID

(以上查询在HIVE和MYSQL中都可以正常工作)

具有功能的列:

从表中按 ACCOUNTID顺序选择 concat('test _',ACCOUNTID);

在mysql中,上述查询工作正常。

在配置单元中,抛出以下异常

失败:SemanticException [错误10004]:
1:59行无效的表别名或列引用“ACCOUNTID”:
(可能的列名称为:_c0)


MySQL的:

通过排序可以很好地处理函数中涉及的列

hive

排序是,而不是处理涉及函数的列

临时解决方案:

从表中选择 concat('test _',ACCOUNTID)作为tempColumn ,顺序为 tempcolumn;

没有将列指定为tempcolumn的解决方案吗?

注意:

我只希望连接结果(test_ACCOUNTID)..而不将ACCOUNTID暴露为另一列

最佳答案

也许您也可以选择accountid列进行排序。

SELECT accountid,concat('test_',ACCOUNTID) from table order by accountid;

或者,将“concat('test_',accountid)”重命名为accountid,如下所示:
SELECT concat('test_',ACCOUNTID) accountid from table order by accountid;

关于mysql - hive 顺序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27816800/

10-12 23:01