Concatenate Multiple Rows Without Using Loop in SQL Server

  1. CREATE TABLE #Emp ([ID] INT, [NameCHAR(1), [Value] INT)      
  2.   
  3. INSERT INTO #Emp ([ID],[Name],[Value])   
  4. VALUES (1,'Vithal',4)    
  5. INSERT INTO #Emp ([ID],[Name],[Value])   
  6. VALUES (1,'Dinesh',8)    
  7. INSERT INTO #Emp ([ID],[Name],[Value])   
  8. VALUES (2,'Anil',9)      
  9.   
  10. SELECT     [ID]  ,   
  11. STUFF((SELECT ', ' + [Name] + ':' + CAST([Value] AS VARCHAR(MAX))   
  12. FROM #Emp WHERE (ID = Results.ID) FOR XML PATH ('')),1,2,''AS NameValues    
  13. FROM #Emp Results  GROUP BY ID