oracle: запрос для получения в качестве выходных данных масштаба и точности для числовых столбцов — тип данных поля = число

#sql #oracle #numbers #scale #precision

#sql #Oracle #числа #масштаб #точность

Вопрос:

У меня есть столбец с числовым типом данных. В этом столбце у меня есть значения с масштабом и точностью, но также доступен только масштаб. Я хотел бы, чтобы при запросе данных на выходе были указаны масштаб и точность для всех полей.

create table test
(
column number
);

 insert into test values (123);
insert into test values (0);
insert into test values (15.06);
insert into test values (78.78);
insert into test values (12.3);
commit;
  

столбец

    123
     0
 15.06
 78.78
  12.3
  

когда я запрашиваю данные, я хотел бы иметь выходные данные в виде:

столбец

 123.00
  0.00
 15.06
 78.78
 12.30
  

Можете ли вы указать, как я должен написать запрос, чтобы получить вышеуказанный результат? Выходные данные также должны быть числовыми. Часть точности не является фиксированной.

Комментарии:

1. Итак, вы хотите отформатировать число ?

Ответ №1:

Преобразуйте в нужный формат:

 select to_char(col, '990.00')
from t;
  

Здесь находится db<>fiddle.

Вы можете управлять масштабом, регулируя рисунок. Например, для четырех знаков после запятой:

 select to_char(col, '990' || rpad('.', 4   1, '0'))
from test;
  

Я не знаю, как управлять результирующим набором, чтобы значением было число.

Комментарии:

1. Привет. Это решение работает, только если я знаю номер масштаба, но что, если я его не знаю? Мне нужно простое решение, если оно существует. Конечным результатом должно быть число.

Ответ №2:

это сработает:

 select to_char("a", '000.00') from Table1;
  

http://sqlfiddle.com /#!4 / 16599a / 2

Комментарии:

1. Выходные данные не являются числом! Я хотел бы иметь числовой вывод, отформатированный как указано выше.