Это должно работать:
select convert(varchar(10), convert(decimal(10, 2), try_convert(int, '0000040000') / 100.0))
Почему вы хотите значение в виде строки? Работает ли десятичная дробь для ваших целей?
Другой метод:
select ltrim(str(try_convert(int, '0000040000') / 100.0, 10, 2))
Или используя только строковые манипуляции:
select replace(ltrim(replace(stuff('0000040000', 9, 0, '.'), '0', ' ')), ' ', '0')
Это было бы более элегантно, если бы ltrim()
в SQL Server принял символ для обрезки (как позволяет большинство других баз данных).