Я хотел бы направить вас к этой подробной статье, написанной Erland Sommarskog некоторое время назад, http://www.sommarskog.se/arrays-in-sql-2008.html.
Ресурсы для функций разделения можно найти здесь, http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648.
любимая функция разделения:
CREATE FUNCTION dbo.Split (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT
pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)
Я считаю, что в StackOverflow уже есть несколько тем с другими примерами.