e retorna um select com cada um dos valores como uma coluna.
CREATE PROCEDURE [dbo].[SPR_SELECT_STRING_COLUNA]
@String VARCHAR(1000)
AS
DECLARE @Str varchar(5000)
DECLARE @Int int
SELECT @Str = ' '
IF PATINDEX ('%,%', @String) = 0
BEGIN
Select @Str=@Str + @String + ' as Col1'
END
ELSE
BEGIN
SELECT @Int=0
WHILE PATINDEX ('%,%', @String) > 0
BEGIN
SELECT @Int=@Int + 1
SELECT @Str = @Str + '''' + SUBSTRING (@String, 1, PATINDEX ('%,%', @String) - 1) + '''' + ' as Col' + CAST(@Int as varchar(10))+','
SELECT @String = SUBSTRING (@String, PATINDEX ('%,%', @String) + 1, LEN(@String))
END
SELECT @Int=@Int + 1
SELECT @Str = @Str + '''' + @String + '''' + ' as Col' + CAST(@Int as varchar(10))
END
EXEC('Select ' + @STR)
Podemos testar a procedure assim:
exec SPR_SELECT_STRING_COLUNA '1,2,3'
Nenhum comentário:
Postar um comentário
Leave your comment here!