2017-02-23 14 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 (regexp_replace ('123,56 €', '€', ''), ',', '. «); но я не хочу идти этим путем, я хочу выдать только числа, которые заменяют. а затем извлечь только номер – 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 
Смежные вопросы