A slight variation to Luis's method and implemented as an inline table valued function
CREATE FUNCTION compressDuplicates(@code nvarchar(4000))
RETURNS TABLE WITH SCHEMABINDING AS
RETURN
WITH cteTally as (
SELECT TOP(LEN(@code) - 1) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) N
FROM (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) E1(N)
,(VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) E2(N)
,(VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) E3(N)
),
startpattern as (
SELECT SUBSTRING(@code,1,1) P
UNION ALL
SELECT SUBSTRING(@code,N+1,1) P
FROM cteTally
WHERE SUBSTRING(@code,N,1) <> SUBSTRING(@code,N+1,1) COLLATE Latin1_General_BIN -- Change to suit comparison required
)
SELECT CAST(r AS NVARCHAR(4000)) result
FROM (
SELECT P
FROM startpattern
FOR XML PATH('')
) AS A(R);
If there is non numerics in your string you will need to decide how to handle case, etc and set the collation accordingly