2017-02-23 104 views
0

我正在加载一个包含数量列的文件,其中包含123,56€ 这样的值,当我将其加载到配置单元表中时,欧元符号被一个方框替代, ,第二件事是,逗号表示一个小数。如何将货币转换为数字?

现在我想要一个正则表达式,它可以将此值转换为123.56,所以基本上删除逗号和欧元符号。

回答

1

试试这个: -

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

这会给123.56

+0

感谢您的回复。但价值是123,56€而不是123,56像regexp_replace('123,56€','€',''),',','。 “);但我不想通过这种方法去,我想只extarct数字,这是取代,与。然后提取号码只有 – raunaq

+0

检查更新的答案 –

+0

你能解释regexp_extract pls吗? – raunaq

0
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 
+0

我认为,如果没有正则表达式,甚至可能会有更干净的解决方案。我会稍后检查 –

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

如果你有未知币种符号

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