quinta-feira, 26 de maio de 2011

Função para converter uma STRING com valores separados por delimitador em um Dataset SPLIT STRING SQL SERVER

A função abaixo permite converter um String com valores separados por um delimitador em um Dataset.

create function dbo.Split(@String varchar(8000), @Delimiter char(1))    
returns @temptable TABLE (items varchar(8000))    
as    
begin    
      declare @idx int    
      declare @slice varchar(8000)    
   
      select @idx = 1    
            if len(@String)<1 or @String is null  return    
   
      while @idx!= 0    
      begin    
            set @idx = charindex(@Delimiter,@String)    
            if @idx!=0    
                  set @slice = left(@String,@idx - 1)    
            else    
                  set @slice = @String    
           
            if(len(@slice)>0)
                  insert into @temptable(Items) values(@slice)    

            set @String = right(@String,len(@String) - @idx)    
            if len(@String) = 0 break    
      end

return    

end

Pode ser usada assim:

select * from dbo.split('1,2,3,4,5,6',',')

 
Abs e até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!