我正在加载一个文件,它有一个amount列,它包含像123,56这样的值€ 当我加载到配置单元表中时,欧元符号被一个方形框替换,第二件事是逗号表示十进制。现在我想要一个正则表达式,它可以把这个值转换成123.56,所以基本上去掉逗号和欧元符号。
mzsu5hc01#
hive> select regexp_replace('123,56€','(\\d+),(\\d+).','$1.$2'); OK 123.56
你可能想要它作为一个数字
hive> select cast(regexp_replace('123,56€','(\\d+),(\\d+).','$1.$2') as decimal(12,2)); OK 123.56
igetnqfo2#
hive> select translate('123,56€',',€','.'); OK 123.56
如果你有未知的货币符号
hive> select translate('123,56€',translate('123,56€','1234567890',''),'.'); OK 123.56
i7uaboj43#
尝试this:-
regexp_extract(regexp_replace('123,56€',',','.' ),'([0-9.]+)', 1)
这将是123.56
3条答案
按热度按时间mzsu5hc01#
你可能想要它作为一个数字
igetnqfo2#
如果你有未知的货币符号
i7uaboj43#
尝试this:-
这将是123.56