#sql #oracle
Вопрос:
Формат 21000 в 210.00 или 21123 в 211.23
Я попытался выбрать to_char(21000,’999,99′) из dual; но в результате я получаю#####.
Я также попытался выбрать to_char(21000,’99999.99′) из dual; но он форматирует число до 21000.00
Комментарии:
1. Вы на самом деле имели в виду «отформатировать 21000 в десятичное число 210, представленное в виде строки 210.00» (с двумя десятичными знаками)? Это не просто проблема «форматирования» — на самом деле вы делите на 100. В разделе «форматирование» вы не изменяете значение, только то, как оно показано. Или вы имели в виду «показать число 21000 как 210,00, где точка является разделителем групп — число по-прежнему является целым числом двадцать одна тысяча»? В таком случае, почему вы имеете в виду «десятичные знаки»? В любом случае вам следует уточнить. Один респондент до сих пор предполагал один из двух ответов, но я не уверен на 100%, что вы это имели в виду.
Ответ №1:
Вам нужно разделить на 100:
SELECT value,
TO_CHAR(value / 100, 'FM990.00') AS formatted_value
FROM table_name;
Который, для выборочных данных:
CREATE TABLE table_name ( value ) AS
SELECT 21000 FROM DUAL UNION ALL
SELECT 21123 FROM DUAL;
Выходы:
ценность ЗНАЧЕНИЕ FORMATTED_VALUE 21000 210.00 21123 211.23
бд<>скрипка <>здесь