2014-09-30 54 views
0

我正在使用Oracle SQL,并且我有一个小问题。将德国格式数字转换为国际格式

我有一个varchar列与德国格式的数字,我需要将格式转换为国际(无逗号),并将列转换为float

例如:

4,33 --> 4.11 
33.000.000,01 --> 33000000.01 
77.000,00 --> 77000 

是否有能做到这一点的对话功能?如果是这样,那是什么?我没有找到这样的功能。

回答

2

您可以用TO_NUMBER函数将varchar值转换成数字值:

select to_number('4,33', '999G999G999D99', 'NLS_NUMERIC_CHARACTERS = '',.''') from dual union 
select to_number('33.000.000,01', '999G999G999D99', 'NLS_NUMERIC_CHARACTERS = '',.''') from dual union 
select to_number('70.000,00', '999G999G999D99', 'NLS_NUMERIC_CHARACTERS = '',.''') from dual 
+0

谢谢!它正在工作。 – Omri 2014-09-30 10:26:21