Подтвердить что ты не робот

Округление до 2 знаков после запятой в SQL

каждый раз, когда я хочу округлить до двух знаков после запятой, когда дело доходит до нулей, он не хочет округлять его... как я мог округлить его до 2 знаков после запятой с нулями в конце, которые дали бы мне 92.00 вместо 92?

SELECT ROUND(COLUMN_NAME,2) FROM ....

это дает мне

COLUMN_NAME
92

но я хочу

COLUMN_NAME
92.00

Я использовал TO_CHAR и работал

ROUND(TO_CHAR(COLUMN_NAME),2)

Спасибо, ребята!

4b9b3361

Ответ 1

вы можете попробовать функцию TO_CHAR для преобразования результата

например.

SELECT TO_CHAR(92, '99.99') AS RES FROM DUAL

SELECT TO_CHAR(92.258, '99.99') AS RES FROM DUAL

Надеюсь, что это поможет

Ответ 2

Попробуйте использовать команду COLUMN с опцией FORMAT для этого:

COLUMN COLUMN_NAME FORMAT 99.99
SELECT COLUMN_NAME FROM ....

Ответ 3

Попробуйте избежать форматирования в запросе. Вы должны вернуть свои данные в необработанном формате и позволить получающему приложению (например, службе отчетов или конечному пользователю) делать форматирование, то есть округление и т.д.

Форматирование данных на сервере делает его более сложным (или даже невозможным) для дальнейшей обработки ваших данных. Обычно вы хотите экспортировать таблицу или выполнить некоторую агрегацию, например, сумму, среднюю и т.д. Поскольку числа поступают как строки (varchar), обычно нет простого способа их дальнейшей обработки. Некоторые дизайнеры отчетов даже откажутся предлагать возможность объединить эти "цифры".

Кроме того, конечный пользователь увидит специфическое для страны форматирование сервера вместо своего собственного ПК.

Также рассмотрим проблемы округления. Если вы округлите значения на сервере и затем выполняете некоторые вычисления (предположим, что клиент может вернуть числовые строки обратно в число), вы получите неправильные результаты.