Arrays in SQL

There are such things you know, they are called TABLES!

CREATE FUNCTION [dbo].[make_int_array] (@list ntext)
RETURNS @tbl TABLE (listpos int IDENTITY(1, 1) NOT NULL,
number int NOT NULL) AS
BEGIN
	DECLARE @pos int,
		@textpos int,
		@chunklen smallint,
		@str nvarchar(4000),
		@tmpstr nvarchar(4000),
		@leftover nvarchar(4000)

	SET @textpos = 1
	SET @leftover = ''

	WHILE @textpos  0
		BEGIN
			SET @str = substring(@tmpstr, 1, @pos - 1)
			INSERT @tbl (number) VALUES (convert(int, @str))
			SET @tmpstr = ltrim(substring(@tmpstr, @pos + 1, len(@tmpstr)))
			SET @pos = charindex(',', @tmpstr)
		END
		SET @leftover = @tmpstr
	END

	IF ltrim(rtrim(@leftover))  ''
		INSERT @tbl (number) VALUES(convert(int, @leftover))
	RETURN
END