【问题标题】:How to add blanks between digits (currency) - Oracle format如何在数字(货币)之间添加空格 - Oracle 格式
【发布时间】:2019-02-16 05:04:33
【问题描述】:

我需要为以下数字指定格式:

1234567.89

作为

1 234 567.89

我已经试过了:

select regexp_replace( '1234567.89', '(...)', '\1 ' ) from dual;

但它从左到右开始计数,忽略了小数点。

提前致谢。

最好的问候。

【问题讨论】:

    标签: sql oracle format oracle-sqldeveloper format-model


    【解决方案1】:
    SELECT TO_CHAR(10000,'99G999D99MI',
               'NLS_NUMERIC_CHARACTERS = ''. ''
               NLS_CURRENCY = '' ') "Amount"
               FROM DUAL;
    

    【讨论】:

    • 这将遇到与格式模型相同的问题。你需要添加“9”和“G”来支持更大的数字,比如9G999G999D99MI
    【解决方案2】:

    你可以这样做

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

    只有在这种情况下,您才需要知道您将拥有的最大数字有多大。如果假设您最大的数字是数百万,则将格式模型设为数十亿,这样它就可以涵盖确切的位数或更多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2015-08-06
      • 2011-01-23
      相关资源
      最近更新 更多