查询:
没有功能的列:
按 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/