I am trying to loop a varchar in SQL Server, one of the columns has the format
"F1 100 F2 400 F3 600"
What I need is to take the numbers and divide by 10: "F1 10 F2 40 F3 60", for the moment I have a stored procedure which calls this function:
ALTER FUNCTION [name_offunction]
(@Chain varchar(120))
RETURNS varchar(120
AS
BEGIN
DECLARE @Result varchar(120), @Pos int, @Concat varchar(120)
WHILE LEN(@Chain) > 0
BEGIN
SET @Pos = CHARINDEX(' ', @Chain)
SET @Result = CASE
WHEN SUBSTRING(@Chain, 1, @Pos-1) LIKE '%[^A-Z]%'
THEN SUBSTRING(@Chain, 1, @Pos-1)
WHEN SUBSTRING(@Chain, 1, @Pos-1) NOT LIKE '%[^A-Z]%'
THEN CAST(CAST(SUBSTRING(@Chain, 1, @Pos-1) / 10 AS INT)AS CHAR)
END
SET @Chain = REPLACE(@Chain, SUBSTRING(@Chain, 1, @Pos), '')
SET @Concat += @Result + ' '
END
RETURN @Concat