got a tally table?here's a really quick way to do it using a tally tableDECLARE @foo TABLE ( [fooID] INT PRIMARY KEY , [txtData] VARCHAR(8000) )INSERT @foo ([fooID], [txtData]) SELECT 1, 'foo;bar;woo;shoo'UNION SELECT 2, 'crew;slough'SELECT f.[fooID] , SUBSTRING(f.[txtData], N + 1, CHARINDEX(';', f.[txtData], N + 1 ) - N - 1)FROM ( SELECT [fooID] , ';' + [txtData] + ';' AS [txtData] FROM @foo ) AS f JOIN tally AS t ON t.N < LEN(f.[txtData])WHERE SUBSTRING(f.[txtData], N, 1) = ';'Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION