Не позволяйте Oracle срезать лидирующие нули моих чисел, таких как 0,1 0,2 0,5 и т. Д. - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть такой оракульный запрос:

SELECT floatColum0,floatColum1,ROUND(floatColum2,2) from table;

, который возвращает такие значения:

.2 , 1.23, .23

как мне получить что-то подобное?(ведущие нули)

0.2, 1.23, 0.23 ?

Ответы [ 3 ]

5 голосов
/ 20 февраля 2012

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

SET numformat 99.99;
SELECT floatColum0,floatColum1,ROUND(floatColum2,1) from table;

Это должно сработать, но, опять же, помните, что это довольно бессмысленное упражнение.Для дополнительных деталей: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#SQLRF00211

1 голос
/ 20 февраля 2012

Я думаю, что ваша проблема может быть в региональных настройках.

Сделайте это:

  1. Перейти к панели управления
  2. Региональные и языковые настройки
  3. Настройка
  4. Отображение ведущих нулей

и измените значение на то, что вы хотите.

0 голосов
/ 20 февраля 2012

Вы можете попробовать привести его к типу varchar и использовать оператор case, чтобы добавить ноль, если первый символ - «.»(и ничего не добавляя, если что-то еще).

Я не эксперт по Oracle, но я не думаю, что вы могли бы "добавлять" нули без изменения типа данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...