Hi
You could try the following
CREATE FUNCTION replace6plusint(@s1 varchar(100)) RETURNS TABLE AS RETURN
WITH
firstRun AS (
SELECT replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(@s1,'0','^'),'1','^'),'2','^'),'3','^'),'4','^'),'5','^'),'6','^'),'7','^'),'8','^'),'9','^'),'^^^^^^','------') a
UNION ALL
SELECT replace(a,'-^','--')
FROM firstRun
WHERE a like '%-^%'
),
secondRun AS (
SELECT replace(a,'-','x') b, charindex('^', a) p
FROM firstRun
WHERE a not like '%-^%'
UNION ALL
SELECT stuff(b, p, 1, substring(@s1,p,1)), charindex('^', b)
FROM secondRun
WHERE p <> 0
)
SELECT b result FROM secondRun WHERE p = 0