Нужны динамические десятичные разряды в отображении SQL

#sql

#sql

Вопрос:

В столбце отображения я получаю следующие значения:

 12.000000
12.350000
13.230000
14.560000
  

Мне нужно представить эти значения с динамическими десятичными разрядами до 2 знаков, т. Е. если есть нули, то их следует игнорировать.
например: только 12.35, если это 12.500000, то должно отображаться только 12.5

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

1. Что вам нужно отобразить для «12.0000» — просто 12 или 12. или 12.0 ?

2. Используйте to_char() для форматирования числа

Ответ №1:

float тип удаляет конечные нули, по крайней мере, для SQL Server. Попробуйте привести свой decimal к float .

 SELECT CAST(12.350000 as float)
  

ВОЗВРАТ

12,35

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

1. спасибо Карсу и Дэвиду! это сработало .. еще одна вещь, если я хочу этот текущий формат.. что я должен добавить? пример: 1,235

Ответ №2:

Вы могли бы попробовать следующее (стандартный SQL ANSI):

 SELECT TRIM(TRAILING '0' FROM TRIM(CAST(CAST(myvalue AS DECIMAL(12,2)) AS CHAR(30))))
  FROM mytable;
  

Я не уверен, какой вариант SQL вы используете, но вышеупомянутое должно сработать (дополнительное TRIM() на тот случай, если результат CAST() дополнен пробелами.