我试图从允许用户指定列名别名的应用程序中构建一些配置单元(0.9)查询。
我发现,每当列别名有两个字符长,并且是后跟“b”或“b”的数字时,就会出现错误:“无法识别“as”“2b”“in selection target”附近的输入”
不起作用的查询:
select t1.emp_id as 1b from someTable t1;
select t1.emp_id as 2b from someTable t1;
select t1.emp_id as 1B from someTable t1;
有效的查询:
select t1.emp_id as 1b1 from someTable t1;
select t1.emp_id as 1ba from someTable t1;
select t1.emp_id as 1c from someTable t1;
这是Hive中已知的问题吗?我找不到任何与此类错误有关的jira问题。
2条答案
按热度按时间ykejflvf1#
攀登给了我们一个很好的答案,为什么会发生这种情况;下面是一个关于如何解决这个问题的答案-只要使用backticks,就像这样:
aiazj4mn2#
好吧,我很肯定我找到了。配置单元解析器将其识别为
ByteLengthLiteral
定义如下:我也试过同样的说法
b
与k
,m
,和g
也犯了同样的错误。为了提供信息,一个标识符(
as [identifier]
)定义为。。。看起来应该有用,只是
ByteLengthLiteral
已处理,因此无法识别标识符。