Я знаю, что этот поток очень старый, но для тех, кто не использует SQL Server 2012 или выше или не может использовать функцию FORMAT по любой причине, тогда работает следующее.
Кроме того, многие решения не работали, если число было меньше 1 (например, 0,01230000).
Обратите внимание, что следующее не работает с отрицательными числами.
DECLARE @num decimal(28,14) = 10.012345000
SELECT PARSENAME(@num,2) + REPLACE(RTRIM(LTRIM(REPLACE(@num-PARSENAME(@num,2),'0',' '))),' ','0')
set @num = 0.0123450000
SELECT PARSENAME(@num,2) + REPLACE(RTRIM(LTRIM(REPLACE(@num-PARSENAME(@num,2),'0',' '))),' ','0')
Возвращает 10.012345 и 0.012345 соответственно.