terça-feira, 18 de agosto de 2009

Função para criar uma tabela temporária com valores separados por vírgula

Devido a necessidade de um colega de trabalho, encontrei esta função que cria uma tabela com base em valores de uma string separados por vírgula.

CREATE FUNCTION [dbo].[fnStringToInt] (@String VARCHAR(1000))

RETURNS @Inteiros TABLE

(

IDs varchar(10)

)

AS

BEGIN

DECLARE @Int varchar(10)

IF PATINDEX ('%,%', @String) = 0

INSERT INTO @Inteiros VALUES (@String)

ELSE

BEGIN

WHILE PATINDEX ('%,%', @String) > 0

BEGIN

INSERT INTO @Inteiros VALUES (SUBSTRING (@String, 1, PATINDEX ('%,%', @String) - 1))

SET @String = SUBSTRING (@String, PATINDEX ('%,%', @String) + 1, LEN(@String))

END

INSERT INTO @Inteiros VALUES (@String)

END

RETURN

END


Para testar a função, podemos fazer:

SELECT * FROM [dbo].[fnStringToInt]('10,2,3')

O resultado seria:




Segue link onde encontrei a função, encaminhada por um dos seguidores do blog: http://social.msdn.microsoft.com/forums/pt-BR/transactsqlpt/thread/1ff7e4d9-d32c-4356-83a4-39706db3e007

Abs!

Nenhum comentário:

Postar um comentário

Leave your comment here!