Всегда показывать десятичные разряды в SQL? - PullRequest
11 голосов
/ 28 апреля 2009

Я работаю над запросом, который возвращает числовые значения (валюта). Некоторые значения являются целыми числами и отображаются как 3, 5, 2 и т. Д., В то время как другие числа появляются как 2,52, 4,50 и т. Д.

Как я могу заставить оракула всегда показывать десятичные знаки?

Спасибо

Ответы [ 5 ]

12 голосов
/ 28 апреля 2009
8 голосов
/ 05 мая 2016

Чтобы улучшить ответы, которые уже даны, вы можете использовать:

  • TO_CHAR(your_value,'fm999.99') для предотвращения пробелов

    ____3.45 становится 3.45 (_ обозначает пробел)

  • TO_CHAR(your_value,'fm990.99') для принудительной установки значений меньше 1 для отображения начального нуля

    .52 становится 0.52

  • TO_CHAR(your_value,'fm990.00') для принудительного ввода 2 десятичных знаков, даже если 0

    6.3 становится 6.30

  • (TO_CHAR(your_value,'fm990.00')||'%') для добавления знака процента

    18.6 становится 18.60%

источник: https://community.oracle.com/thread/968373?start=0&tstart=0

5 голосов
/ 28 апреля 2009

Отображение и форматирование данных должны обрабатываться на уровне представления, а не на уровне данных.

Используйте возможности, предоставляемые вашим интерфейсом, для форматирования значений по вашему усмотрению.

1 голос
/ 27 сентября 2013

to_char исправляет десятичную ошибку, но вы должны быть уверены в длине. Если он длиннее указанного формата, номер будет отображаться как ####. Если число короче, то перед номером останутся пробелы. * например 1003 *

to_char(123.45),'99.00') покажет ####

и

to_char(123.45),'999999.00') покажет ' 123.45'.

Итак, если вам нужно экспортировать результаты в CSV или Excel, эти числа будут обрабатываться как строки.

Итак, я не нашел никакого решения.

0 голосов
/ 29 апреля 2009

В SQL * Plus вы можете использовать директиву COLUMN, чтобы указать форматирование для каждого столбца отдельно от самого запроса. Таким образом вы сохраняете свой запрос «чистым» для возможного другого использования и все еще получаете свое форматирование. (В SQL * Plus как минимум ...)

* 1003 например *

COLUMN SAL FORMAT 99,990.99

Google для "Руководство пользователя и справка по SQL * Plus", и вы должны получить ссылки на расположение Oracle для вашей версии Oracle. 10.1 - это здесь , если это подойдет. Вероятно, все они будут примерно одинаковыми, заметьте: я не думаю, что SQL * Plus сильно изменился с тех пор, как я изучил его в 1988 году на Oracle 5.1.17 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...