Я хотел удалить как начальные, так и конечные нули десятичной записи (например, имея 0,08 записи 0,0800).Это работает очень хорошо.
SELECT REPLACE(RTRIM(LTRIM(REPLACE(cast(CAST(0.0800 AS decimal(6,2)) as float),'0',' '))),' ','0')
Однако, когда я пытаюсь использовать его с делом, он удаляет только завершающие нули.
DECLARE @char int = 1
SELECT
CASE WHEN @char = 1 THEN REPLACE(RTRIM(LTRIM(REPLACE(cast(CAST(0.0800 AS decimal(6,2)) as float),'0',' '))),' ','0')
ELSE 0.01
END
дает 0,08, а я ожидаю получить 0,08.
Однако, этот дает 0.08
DECLARE @char int = 1
SELECT
CASE WHEN @char = 1 THEN REPLACE(RTRIM(LTRIM(REPLACE(cast(CAST(0.0800 AS decimal(6,2)) as float),'0',' '))),' ','0')
ELSE cast(cast(0.01 as decimal(6,2)) as varchar)
END
Кто-нибудь может объяснить причину?Мне просто интересно.