Listing 3: CREATE FUNCTION dbo.udfParseString (@S varchar(7998), @E char( 1)) RETURNS @T TABLE (Number smallint IDENTITY(1,1), Offset smallint, String varchar(2000)) AS BEGIN DECLARE @N smallint DECLARE @Z varchar(8000) SET @N = LEN(@S) + 1 SET @Z = @E + @S + @E INSERT @T (Offset, String) SELECT Number , SUBSTRING(@S,Number,CHARINDEX(@E,@Z,Number+1)-Number-1) FROM dbo.udfGetSequence(1,@N) WHERE SUBSTRING(@Z,Number,1) = @E ORDER BY Number RETURN END