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

каждый раз, когда я хочу округлить до 2 знаков после запятой, когда дело доходит до нулей, он не хочет округлять... Как я могу округлить до 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)

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

Решение

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

например.

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

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

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

Комментарии (1)

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

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

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

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

Комментарии (0)

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

COLUMN COLUMN_NAME FORMAT 99.99
SELECT COLUMN_NAME FROM ....
Комментарии (2)