Как добавить пробелы между цифрами (валюта) - формат Oracle - PullRequest
0 голосов
/ 16 февраля 2019

Мне нужно указать следующий формат:

1234567.89

как

1 234 567.89

Я уже пробовал:

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

Но отсчет начинается слева направо и игнорируется десятичная точка.

Заранее спасибо.

С уважением.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Вы можете сделать это следующим образом

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

Только в этом случае вам нужно знать, насколько большим будет наибольшее число, которое у вас будет.Если скажем, ваше наибольшее число в миллионах, сделайте модель формата в миллиардах, чтобы оно охватывало либо точное количество цифр, либо больше

0 голосов
/ 16 февраля 2019
SELECT TO_CHAR(10000,'99G999D99MI',
           'NLS_NUMERIC_CHARACTERS = ''. ''
           NLS_CURRENCY = '' ') "Amount"
           FROM DUAL;
...