Sql 如何在数字(货币)之间添加空格-Oracle格式

Sql 如何在数字(货币)之间添加空格-Oracle格式,sql,oracle,format,oracle-sqldeveloper,format-model,Sql,Oracle,Format,Oracle Sqldeveloper,Format Model,我需要给出以下数字的格式: 1234567.89 作为 1234567.89 我已经试过了: select regexp_replace( '1234567.89', '(...)', '\1 ' ) from dual; 但它从左到右开始计数,忽略了小数点 提前谢谢 向你问好。你可以这样做 SELECT TO_CHAR(10000,'99G999D99MI', 'NLS_NUMERIC_CHARACTERS = ''. '' NLS_CURRENC

我需要给出以下数字的格式:

1234567.89

作为

1234567.89

我已经试过了:

select regexp_replace( '1234567.89', '(...)', '\1 ' ) from dual;
但它从左到右开始计数,忽略了小数点

提前谢谢


向你问好。

你可以这样做

SELECT TO_CHAR(10000,'99G999D99MI',
           'NLS_NUMERIC_CHARACTERS = ''. ''
           NLS_CURRENCY = '' ') "Amount"
           FROM DUAL;
select replace(to_char(1234567.89, '9,999,999,999,999,999.99'), ',', ' ')  x from dual

只有在这种情况下,你需要知道你将拥有的最大数字有多大。如果说,你的最大数字是百万,那么就可以用数十亿来建立格式模型,因此它包含了精确的数字或更多位数

select replace(to_char(1234567.89, '9,999,999,999,999,999.99'), ',', ' ')  x from dual

只有在这种情况下,你需要知道你将拥有的最大数字有多大。如果说,你最大的数字是以百万为单位的,那就以十亿为单位制作格式模型,这样它就涵盖了确切的位数或更多的位数

这将与格式模型遇到同样的问题。您需要添加“9”和“G”以支持更大的数字,如
9G999G999D99MI
这将遇到与格式模型相同的问题。您需要添加“9”和“G”以支持更大的数字,如
9G999G999D99MI