каждый раз, когда я хочу округлить до 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
Надеюсь, это поможет
Старайтесь избегать форматирования в запросе. Вы должны вернуть данные в исходном формате и позволить принимающему приложению (например, службе отчетности или приложению конечного пользователя) выполнить форматирование, т.е. округление и т.д.
Форматирование данных на сервере затрудняет (или даже делает невозможным) дальнейшую обработку данных. Обычно вы хотите экспортировать таблицу или сделать некоторые агрегации, такие как сумма, среднее и т.д. Поскольку числа поступают в виде строк (varchar), обычно не существует простого способа их дальнейшей обработки. Некоторые разработчики отчетов даже отказываются предлагать возможность агрегировать эти 'числа'.
Кроме того, конечный пользователь будет видеть форматирование, характерное для конкретной страны, на сервере, а не на своем компьютере.
Также следует учитывать проблемы с округлением. Если вы округляете значения на сервере, а затем все равно выполняете некоторые вычисления (предположим, что клиент способен вернуть числовые строки обратно к числу), то в итоге вы получите неверные результаты.