如何使用包含空格的标识符对列进行别名?

时间:2017-04-27 14:32:03

标签: hive hiveql

有没有人知道在Hive中没有下划线的列别名的语法?在SQL和MYSQL中,您可以使用单引号或括号。这在Hive中似乎不起作用。这是一个不起作用的简单查询:

select inbound_handled as 'IB Handled' 
from shdev.cust_data     

1 个答案:

答案 0 :(得分:4)

语法为:

select inbound_handled as `IB Handled` 
from shdev.cust_data     

在Hive版本0.12.0及更早版本中,列名称只能包含字母数字和下划线字符。

在Hive版本0.13.0及更高版本中,默认情况下,可以在反引号(`)中指定列名,并包含任何Unicode字符(HIVE-6013)。在由反引号分隔的字符串中,除了双重反引号(“`”)代表一个反引号字符外,所有字符都按字面处理。可以通过将hive.support.quoted.identifiers设置为none来使用0.13.0之前的行为,在这种情况下,将反引号名称解释为正则表达式。有关详细信息,请参阅支持列名称中的带引号的标识符。

请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterColumn