Convert List To Array

This blog explains how to a convert a delimiter-separated list into a table. First of all we need to define a table valued  function that takes two parameters; the first parameter is a list and the second parameter is a delimiter character and returns a table. Then we use this function to generate a table from list. 
Function:

  1. CREATE FUNCTION dbo.Fun_ListTOTable  
  2.   
  3. (  
  4.   
  5. @String_List VARCHAR(MAX),  
  6.   
  7. @Delim_String CHAR  
  8.   
  9. )  
  10.   
  11. RETURNS  
  12.   
  13. @Tab TABLE  
  14.   
  15. (  
  16.   
  17. item VARCHAR(MAX)  
  18.   
  19. )  
  20.   
  21. AS  
  22.   
  23. BEGIN  
  24.   
  25. DECLARE @item VARCHAR(MAX), @Pos INT  
  26.   
  27. SET @String_List = @String_List+ @Delim_String;  
  28.   
  29. WHILE LEN(@String_List)>0  
  30.   
  31. BEGIN  
  32.   
  33. SET @Pos = CHARINDEX(@Delim_String, @String_List, 1)  
  34.   
  35. SET @item =SUBSTRING(@String_List,1,@Pos-1);  
  36.   
  37. IF LEN(LTRIM(@item))>0  
  38.   
  39. BEGIN  
  40.   
  41. INSERT INTO @Tab (item)  
  42.   
  43. VALUES (CAST(@item AS VARCHAR(MAX)))  
  44.   
  45. END  
  46.   
  47. SET @String_List = SUBSTRING(@String_List,@Pos+1,LEN(@String_List));  
  48.   
  49. END  
  50.   
  51. RETURN  
  52.   
  53. END  
  54.   
  55. GO  

Example:

  1. SELECT item AS Data  
  2.   
  3. FROM dbo.Fun_ListTOTable('Pankaj#Sandeep#Neeraj#Sanjjev#Naru','#')  

Result:
 
 
Ebook Download
View all
Learn
View all