CREATE FUNCTION [dbo].[fn_split] (@arr nvarchar(4000), @sep nchar(1)) RETURNS table AS RETURN SELECT (n - 1) - LEN(REPLACE(LEFT(@arr, n-1), @sep, N'')) + 1 AS pos, SUBSTRING(@arr, n, CHARINDEX(@sep, @arr + @sep, n) - n) AS element FROM dbo.Nums WHERE n <= LEN(@arr) + 1 AND SUBSTRING(@sep + @arr, n, 1) = @sep; GO