Intereting Posts
Получить значение поля вставленной строки Почему VARCHAR нуждается в спецификации длины? Как обновить только одно поле с помощью Entity Framework? Вставить только в том случае, если значения отличаются от предыдущей записи несколькими вставками? Вы не можете указать целевую таблицу «NAME» для обновления в предложении FROM Обновление Oracle для разбивки строки на два по безопасному пути с откатом Есть ли способ скопировать записи BLOB между базами данных в Oracle 10g? В чем разница между TRUNCATE и DELETE в SQL? Внешний ключ без первичного ключа для ссылки Строки SQL Date для дней бездействия как получить имена и столбцы таблиц базы данных (sql) в C # в поле комбо и списка Где использовать Execute Scalar, выполнить чтение и набор данных? Как сохранить отношение «один ко многим» в моей базе данных sql? (Баз данных) Предвзятое случайное в SQL? MYSQL Дамп только для определенных строк

как добавить нули после десятичного числа в Oracle

Я хочу добавить нули после номера. например, a = 6895
тогда a = 6895,00

datatype a – число (12);

Я использую приведенный ниже код.

select to_char(6895,'0000.00') from dual . 

Я получаю желаемый результат из кода выше, но «6895» может быть любым числом. Из-за этого мне нужно добавить «0» в код выше вручную. например.

 select to_char(68955698,'00000000.00') from dual . 

Может ли кто-нибудь предложить мне лучший метод.

Модели с числовым форматом – это место, которое следует начинать с преобразования чисел в символы. 0 добавляет 0 с, что означает, что вам нужно как-то избавиться от них. Однако 9 означает:

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

Итак, вы получите почти все, кроме ведущего места:

 SQL> select to_char(987, '9999.00') from dual; TO_CHAR( -------- 987.00 

Затем вам необходимо использовать модификатор модели формата FM , который описывается следующим образом:

Режим заполнения FM. Oracle использует завершающие пробелы и ведущие нули для заполнения элементов формата до постоянной ширины. Ширина равна ширине отображения самого большого элемента для соответствующей модели формата

Модификатор FM подавляет вышеуказанное заполнение в возвращаемом значении функции TO_CHAR.

Это дает вам модель формата fm9999.00 , которая будет работать:

 SQL> select to_char(987, 'fm9999.00') from dual; TO_CHAR( -------- 987.00 

Если вам нужно много цифр перед десятичной точкой, просто добавьте много 9 с.

datatype a – число (12);

Затем используйте 12 9s в модели формата. И сохраните десятичное число до 2. Итак, поскольку тип данных столбца равен NUMBER(12) , вы не можете иметь число больше заданного размера.

 SQL> WITH DATA AS( 2 SELECT 12 num FROM dual union ALL 3 SELECT 234 num FROM dual UNION ALL 4 SELECT 9999 num FROM dual UNION ALL 5 SELECT 123456789 num FROM dual) 6 SELECT to_char(num,'999999999999D99') FROM DATA 7 / TO_CHAR(NUM,'999 ---------------- 12.00 234.00 9999.00 123456789.00 SQL> 

Обновление относительно ведущих пространств

 SQL> select ltrim(to_char(549,'999999999999.00')) from dual; LTRIM(TO_CHAR(54 ---------------- 549.00 SQL>