Как удалить конечные нули из десятичного числа в SQL Server? - PullRequest
0 голосов
/ 04 июня 2018

Как я могу удалить конечные нули из десятичного числа в SQL Server?Если в базе данных указано процентное поле со значением 96,86, мой запрос должен вернуть 96,86, но если значение равно 96,00, мне нужно получить только 96. Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Я думаю, вы должны использовать

select cast(CAST(25.00 as decimal(18,5)) as float)

, это возвращает 25, но вы разыгрываете

   select cast(CAST(25.23 as decimal(18,5)) as float)

, это возвращает 25.23

0 голосов
/ 04 июня 2018

Вы можете преобразовать в строку и затем обрезать завершающие символы 0.К сожалению, SQL Server не имеет действительно мощных строковых функций.Следующее делает то, что вы хотите:

select (case when nn like '%.' then replace(nn, '.', '') else nn end)
from (select 96.86 as n union all select 96) t cross apply
     (values (ltrim(rtrim(replace(cast(n as varchar(255)), '0', ' '))))) v(nn)
...