Home
Manage Your Code
Snippet: Split function for T-SQL (SQL)
Title: Split function for T-SQL Language: SQL
Description: Mimics string.Split()[index] behaviuor in SQL Views: 2076
Author: Szymon Kowalsky Date Added: 11/14/2008
Copy Code  
CREATE FUNCTION fn_Split(@string nvarchar(2000), @separator nvarchar(2000), @index int)
RETURNS nvarchar(2000)
AS
BEGIN
	DECLARE @current_position int	
	DECLARE @counter int

	SET @current_position = 0
	SET @counter = 1

	WHILE CHARINDEX(@separator, @string, @current_position) > 0
	BEGIN
		IF @counter = @index
			RETURN SUBSTRING(@string, @current_position, CHARINDEX(@separator, @string, @current_position) - @current_position)
		
		SET @current_position = CHARINDEX(@separator, @string, @current_position) + 1
		SET @counter = @counter + 1
	END

	RETURN SUBSTRING(@string, @current_position, LEN(@string))
END
Usage
SELECT dbo.fn_Split('a.bb.ccc.a.x.eddd..', '.', 3)

will return ccc