analysisexception:第1行中的语法错误:在impala中使用abs()获取值的模数时出错

ruarlubt  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(307)

我想在使用 Impala 时取一个值的模数,我知道 abs() 功能。当我这样用这个的时候

select abs(value) from table

它返回一个四舍五入到最接近整数的值。这里的文档说明我需要定义 numeric_type . 我试过这个

select abs(float value) from table

但这给了我以下的错误

AnalysisException: Syntax error in line 1: ... abs(float value) from table ^ Encountered: FLOAT Expected: ALL, CASE, CAST, DEFAULT, DISTINCT, EXISTS, FALSE, IF, INTERVAL, NOT, NULL, TRUNCATE, TRUE, IDENTIFIER CAUSED BY: Exception: Syntax error

你知道我怎么做吗 abs() 返回 float ?

0wi1tuuw

0wi1tuuw1#

我想你误解了语法。将函数调用为 abs(val) . 返回类型与输入类型相同。它应该适用于整数、小数和浮点数。
如果希望返回特定类型,则需要传入该类型,可能需要强制转换到特定类型。
文件是:
abs(a型)
目的:返回参数的绝对值。
返回类型:与输入值相同
诚然,这看起来确实像类型应该是函数调用的一部分。但它实际上是使用编程语言风格的声明来显示所期望的类型。

j5fpnvbx

j5fpnvbx2#

这应该管用 SELECT cast(Abs(-243.5) as float) AS AbsNum

相关问题