2014-09-19 4 views
-1

не могу понять, как форматировать мой GPA поле правильно:Количество в десятичную SQL

select y.id, 
     max(case when y.r = 1 then y.gpa_c end) gpa 
    from table y 

выходной ток:

ID | GPA 
----+------ 
392 |  0 
399 | 3.234 
400 |  4 
401 | 3.6 

Я попытался cast(), convert(), decimal(), to_char() с 2, 3

Я бы хотел, чтобы все было отформатировано 0.000

+1

использование 'to_char()' –

ответ

2

Вы можете использовать to_char():

TO_CHAR(column, '0d9999') 

В запросе:

select y.id, 
     TO_CHAR(max(case when y.r = 1 then y.gpa_c end), '0d9999') gpa 
    from table y 

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

Обновлено, чтобы правильно показать ведущий ноль для 0 gpa.

Демо: SQL Fiddle

+0

Кавычки, что у меня. Благодарю. –

+0

Есть ли способ сохранить тип номера при использовании этих новых найденных десятичных знаков? –

+0

Нет, это изменяет его на строку. Кроме того, он не работает правильно для 0 –