Thursday, June 28, 2012

convert a subquery result to comma separated list in varchar datatype

Select p.ProductID,
       Stuff((Select ','+Cast(ImageID as varchar(10)) 
                From @ProductImages i 
               Where p.ProductID=i.ProductId 
                 For XML PATH('')
             ),1,1,''
            ) as ImageList
  From @Products p
 Where p.ProductID in (Select ProductID From @ProductImages)
OutPut:
ProductID ImageList
--------- ---------
        1 1,2,3
        2 4,5
        3 1
        4 3,5