Función para convertir una cadena en una tabla
Es habitual que, en procedimientos SQL, se pase una lista de valores separados por comas en una variable, pero en el interior del mismo interese manejar dichos valores como filas de una tabla. La siguiente función, transforma un string que contiene una sucesión de valores separados por coma, en una tabla con una única columna que contiene dichos datos:
CREATE FUNCTION StrTableFunction (@datastring VARCHAR(7000))
RETURNS @data_table TABLE
(item VARCHAR(100))
AS
BEGIN
DECLARE @itemvar VARCHAR(100)
SET @datastring=@datastring+','
WHILE LEN(@datastring)>0 BEGIN
SET @itemvar=LEFT(@datastring,PATINDEX('%,%',@datastring)-1)
INSERT INTO @data_table(item)
VALUES (@itemvar)
SET @datastring=RIGHT(@datastring,LEN(@datastring)-PATINDEX('%,%',@datastring))
END
RETURN
END