Just realised this is limited to strings of 2045 chars. This version will go further:DECLARE @csv VARCHAR(255) SET @csv = 'gvfgmgm,f,a,cls,pcl,r,o,fhhh,h' ;with s(start) as (SELECT distinct charindex(',',','+@csv+',',p)FROM (select * from(select row_number() over (order by m1.number) p from master..spt_values m1,master..spt_values m2) zwhere p <=len(@csv)+2) x ),chunks(chunk) as (select substring(@csv,start,(select min(start) from s as s2 where s2.start>s.start)-start-1)from swhere start<len(@csv)+2)
select * from chunks