1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| DECLARE @INPUT VARCHAR(50);
SELECT @INPUT = '123$456$789$89764$343531463545343543$00$7';
WITH BCL AS
(
SELECT
CASE CHARINDEX('$',@INPUT)
WHEN 0 THEN @INPUT
ELSE SUBSTRING(@INPUT,1,CHARINDEX('$',@INPUT,1)-1)
END AS SPT,
SUBSTRING(@INPUT,CHARINDEX('$',@INPUT,2)+1,LEN(@INPUT)) AS RST
UNION ALL
SELECT
CASE CHARINDEX('$',BCL.RST)
WHEN 0 THEN BCL.RST
ELSE SUBSTRING(BCL.RST,1,CHARINDEX('$',BCL.RST,1)-1)
END,
SUBSTRING(BCL.RST,CHARINDEX('$',BCL.RST,2)+1,LEN(BCL.RST))
FROM BCL
WHERE
BCL.RST <> BCL.SPT
)
SELECT CAST(SPT AS NUMERIC(18)) AS ENTIERS
FROM BCL; |
Partager