code_junkie

How can I combine multiple rows into a comma-delimited list in SQL Server 2005?

Nov 11th, 2011
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. SELECT X, Y FROM POINTS
  2.  
  3. X Y
  4. ----------
  5. 12 3
  6. 15 2
  7. 18 12
  8. 20 29
  9.  
  10. XYLIST
  11. ----------
  12. 12,3,15,2,18,12,20,29
  13.  
  14. DECLARE @XYList varchar(MAX)
  15. SET @XYList = ''
  16.  
  17. SELECT @XYList = @XYList + CONVERT(varchar, X) + ',' + CONVERT(varchar, Y) + ','
  18. FROM POINTS
  19.  
  20. -- Remove last comma
  21. SELECT LEFT(@XYList, LEN(@XYList) - 1)
  22.  
  23. SELECT STUFF((SELECT ',' + X + ',' + Y FROM Points FOR XML PATH('')), 1, 1, '') AS XYList
  24.  
  25. DECLARE @XYList AS varchar(MAX) -- Leave as NULL
  26.  
  27. SELECT @XYList = COALESCE(@XYList + ',', '') + CONVERT(varchar, X) + ',' + CONVERT(varchar, Y)
  28. FROM POINTS
  29.  
  30. DECLARE @s VarChar(8000)
  31. SET @s = ''
  32.  
  33. SELECT @s = @s + ',' + CAST(X AS VarChar) + ',' + CAST(Y AS VarChar)
  34. FROM POINTS
  35.  
  36. SELECT @s
Add Comment
Please, Sign In to add comment