Another possible workaround is to use XML (assuming you are working with SQL Server 2005 or higher):
DECLARE @s TABLE
(
ID INT
, COLOUR VARCHAR(MAX)
)
INSERT INTO @s
VALUES ( 1, '1,2,3,4,5' )
SELECT s.ID, T.Colour.value('.', 'int') AS Colour
FROM ( SELECT ID
, CONVERT(XML, '<row>' + REPLACE(Colour, ',', '</row><row>') + '</row>') AS Colour
FROM @s a
) s
CROSS APPLY s.Colour.nodes('row') AS T(Colour)
source
share