Criando uma função SQL para Split de Strings

0

Funções sempre são úteis no nosso dia-a-dia, não é mesmo? Por isto criei uma função que recebe uma string, um delimitador e retorna uma lista de string dividas por aquele delimitador

Vejam só que bacana:

CREATE FUNCTION [dbo].[FnSplit]  
(  
@List nvarchar(2000),  
@SplitOn nvarchar(5)  
)    
RETURNS @RtnValue table   
(  
  
Id int identity(1,1),  
Value nvarchar(100)  
)   
AS    
BEGIN  
While (Charindex(@SplitOn,@List)>0)  
Begin   
Insert Into @RtnValue (value)  
Select  
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))   
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))  
End   
  
Insert Into @RtnValue (Value)  
Select Value = ltrim(rtrim(@List))  
Return  
END  
--como utilizar select * from dbo.[FnSplit]('ab;cd',';')
--retona ab e cd em campos separados


 

O retorno seria:

Id    Value
1    ab
2    cd

 

Por hoje é só! Um grande abraço a todos!

Compartilhe.