Función para convertir una cadena en una tabla

Descripción: 

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

 

Tecnología: