如何将货币转换成数字?

b4qexyjb  于 2021-06-26  发布在  Hive
关注(0)|答案(3)|浏览(843)

我正在加载一个文件,它有一个amount列,它包含像123,56这样的值€ 当我加载到配置单元表中时,欧元符号被一个方形框替换,第二件事是逗号表示十进制。
现在我想要一个正则表达式,它可以把这个值转换成123.56,所以基本上去掉逗号和欧元符号。

mzsu5hc0

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
igetnqfo

igetnqfo2#

hive> select translate('123,56€',',€','.');
OK
123.56

如果你有未知的货币符号

hive> select translate('123,56€',translate('123,56€','1234567890',''),'.');
OK
123.56
i7uaboj4

i7uaboj43#

尝试this:-

regexp_extract(regexp_replace('123,56€',',','.' ),'([0-9.]+)', 1)

这将是123.56

相关问题