Oracle sql将更改数字格式
我需要用点和逗号替换数字格式,使之成为简单的十进制数 例如:如果字符串是,Oracle sql将更改数字格式,sql,oracle,Sql,Oracle,我需要用点和逗号替换数字格式,使之成为简单的十进制数 例如:如果字符串是,25.25.25,00,它应该变成252525.00 如何实现这一点。您可以连续应用REPLACE()函数 REPLACE(REPLACE('25.25.25,00','.'),',','.') 或 首先将应用于\u NUMBER(),然后将应用于\u CHAR()函数 TO_CHAR( TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARAC
25.25.25,00
,它应该变成252525.00
如何实现这一点。您可以连续应用
REPLACE()
函数
REPLACE(REPLACE('25.25.25,00','.'),',','.')
或
首先将应用于\u NUMBER()
,然后将应用于\u CHAR()
函数
TO_CHAR(
TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARACTERS='',.'''),
'fm999999999D00'
)
对于第二种情况,假定比例的所有值最多有两位数
您可以按如下方式连续应用
REPLACE()
函数
REPLACE(REPLACE('25.25.25,00','.'),',','.')
或
首先将应用于\u NUMBER()
,然后将应用于\u CHAR()
函数
TO_CHAR(
TO_NUMBER('25.25.25,00','999999999D99', 'NLS_NUMERIC_CHARACTERS='',.'''),
'fm999999999D00'
)
对于第二种情况,假定比例的所有值最多有两位数
使用
翻译功能:
select translate('25.25.25,00', ',.', '.') as new_str
from dual
;
NEW_STR
---------
252525.00
这会将“逗号”转换为“句点”,将“句点”转换为零(因为第三个参数比第二个参数短),这意味着它将被简单地丢弃。使用translate
函数:
select translate('25.25.25,00', ',.', '.') as new_str
from dual
;
NEW_STR
---------
252525.00
这会将“逗号”转换为“句点”,将“句点”转换为零(因为第三个参数比第二个参数短),这意味着它将被简单地丢弃。究竟为什么要将数字存储为字符串?@OldProgrammer-链接到错误的函数。对于这种类型的多重同时替换,正确的函数是translate
。你究竟为什么要将数字存储为字符串?@OldProgrammer-链接到错误的函数。这种类型的多个同时替换的正确功能是translate
。