Categorias

Split no SQL Server

Código que deve ser utilizado em uma Procedure no SQL Server para que ele gere um tipo de “SPLIT”.

É necessário colocar a string na variável @ARRAY, e o delimitador utilizado na variável @DELIMITADOR; funciona exatamente como o “SPLIT”, a diferença é que aqui neste código é gerada uma Tabela Temporária simulando o Array.
O nome da tabela é #ARRAY.

SET NOCOUNT ON

DECLARE @ARRAY VARCHAR(8000), @DELIMITADOR VARCHAR(100), @S VARCHAR(8000)

-- VALORES PASSADOS PARA A VARIAVEL @ARRAY
SELECT @ARRAY = "OLA ,TUDO BEM, MAIS OU MENOS, TRANQUILIS"
-- SETANDO O DELIMITADOR
SELECT @DELIMITADOR = ","

IF LEN(@ARRAY) > 0 SET @ARRAY = @ARRAY + @DELIMITADOR 
CREATE TABLE #ARRAY(ITEM_ARRAY VARCHAR(8000))

WHILE LEN(@ARRAY) > 0
BEGIN
   SELECT @S = LTRIM(SUBSTRING(@ARRAY, 1, CHARINDEX(@DELIMITADOR, @ARRAY) - 1))
   INSERT INTO #ARRAY (ITEM_ARRAY) VALUES (@S)
   SELECT @ARRAY = SUBSTRING(@ARRAY, CHARINDEX(@DELIMITADOR, @ARRAY) + 1, LEN(@ARRAY))
END

-- MOSTRANDO O RESULTADO JÁ POPULADO NA TABELA TEMPORÁRIA
SELECT * FROM #ARRAY
DROP TABLE #ARRAY

SET NOCOUNT OFF