hive-remove尾部零

ztyzrc3y  于 2021-06-01  发布在  Hadoop
关注(0)|答案(3)|浏览(409)

例如,我正在尝试从配置单元中的字符串中删除尾随的零 5634000 -> 5634 我试过了

SELECT RTRIM('1230','0');

但是hive抛出以下错误:

Error while compiling statement:
FAILED: SemanticException [Error 10014]: line 41:46
Wrong arguments ''0'': rtrim requires one value argument. Found :2

我也尝试过:

select REGEXP_REPLACE('ABCA','+A$','')

但它也抛出了一个例外。

p3rjfoxz

p3rjfoxz1#

select REGEXP_REPLACE('5634000','0+$',''); -> 5634
``` `0+` 匹配字符0 `+` 量词-在一次和无限次之间匹配,尽可能多地匹配,根据需要回馈(贪婪) `$` Assert字符串末尾的位置
yyyllmsg

yyyllmsg2#

一种方法是 cast 相反的 string 作为 int (这将删除反向字符串中的前导零)并回溯到 string 然后再倒过来。

select reverse(cast(cast(reverse(column_name) as int) as string))
from tbl
rkkpypqq

rkkpypqq3#

尝试:

select REGEXP_REPLACE('ABCA','A+$','')

你的正则表达式( +A$ )第二个参数无效。
https://regex101.com/r/sznkkj/1

相关问题