Saturday, July 23, 2011

Function to Split Multi-valued Parameters

CREATE FUNCTION [dbo].[SplitMultivaluedString] 
( 
   @DelimittedString [varchar](max), 
   @Delimiter [varchar](1) 
) 
RETURNS @Table Table (Value [varchar](100)) 
BEGIN 
   DECLARE @sTemp [varchar](max) 
   SET @sTemp = ISNULL(@DelimittedString,'') 
                + @Delimiter 
   WHILE LEN(@sTemp) > 0 
   BEGIN 
      INSERT INTO @Table 
      SELECT SubString(@sTemp,1,
             CharIndex(@Delimiter,@sTemp)-1) 
      
      SET @sTemp = RIGHT(@sTemp,
        LEN(@sTemp)-CharIndex(@Delimiter,@sTemp)) 
   END 
   RETURN 
END 
GO 

Source : sql-bi-dev