For your previous example that does not work, check an alternative:
select replace(replace(replace(replace(replace(replace(replace(replace(
'01234516',
'0', char(6+16)),
'1', char(8+16)),
'2', char(7+16)),
'6', char(9+16)),
char(6+16), '6'),
char(8+16), '8'),
char(7+16), '7'),
char(9+16), '9')
AS Replaced