蜂巢 - 删除尾随零

时间:2018-03-08 08:59:30

标签: hadoop hive hiveql

我正在尝试从HIVE中的字符串中删除尾随零,例如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$','')

但它也是一个例外。

3 个答案:

答案 0 :(得分:1)

尝试:

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

第二个参数中的正则表达式(+A$)无效。

https://regex101.com/r/SzNkKJ/1

答案 1 :(得分:1)

一种方法是将cast反转的string设置为int(将删除反向字符串中的前导零)并转回string并再次将其反转。

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

答案 2 :(得分:1)

select REGEXP_REPLACE('5634000','0+$',''); -> 5634

0+字面匹配字符0  +量词 - 在一次和无限次之间匹配,尽可能多次,根据需要回馈(贪婪) $在字符串

的末尾断言位置