Как я могу удалить конечные нули из десятичного числа в SQL Server?Если в базе данных указано процентное поле со значением 96,86, мой запрос должен вернуть 96,86, но если значение равно 96,00, мне нужно получить только 96. Как это можно сделать?
Я думаю, вы должны использовать
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.К сожалению, SQL Server не имеет действительно мощных строковых функций.Следующее делает то, что вы хотите:
0
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)