La siguiente función convierte y separa comas una cadena dividido en filas.
DECLARE @nombre_db AS VARCHAR(50)
CREATE FUNCTION fn_SplitString
(
@Str NVARCHAR(MAX),
@Separator CHAR(1)
)
RETURNS @ResultOutput TABLE(Id INT IDENTITY(1, 1), Result NVARCHAR(100))
AS
BEGIN
DECLARE @Splitted_string NVARCHAR(4000)
DECLARE @Pos INT
DECLARE @NextPos INT
SET @Str = @Str + @Separator
SET @Pos = CHARINDEX(@Separator, @Str)
WHILE (@pos <> 0)
BEGIN
SET @Splitted_string = SUBSTRING(@Str, 1, @Pos - 1)
SET @Str = SUBSTRING(@Str, @pos + 1, LEN(@Str))
SET @pos = CHARINDEX(@Separator, @Str)
INSERT INTO @ResultOutput
VALUES
(
@Splitted_string
)
END
RETURN
END
Utilizando la función fn_SplitString en consulta:
--Separar una cadena por comas
SELECT Result
FROM fn_SplitString('Split,string,example,in,sql,server', ',')
--Separar una cadena por símbolo de canalización
SELECT Result
FROM fn_SplitString('Split|string|example|in|sql|server', '|')
--Separar una cadena por el espacio
SELECT Result
FROM fn_SplitString('Split string example in sql server', ' ')