Wednesday, July 11, 2012

SQL Select result displays Horizontally Separate by comma

Let say you have a table structure and data as follow:


Id     Grade
1       3
1       9


then you would need a SQL select output as


Id   Grade
1     3, 9


then do this:

DECLARE @grade_list VARCHAR(MAX

SELECT @ grade_list  = CASE WHEN @ grade_list  IS NULL THEN CONVERT(VARCHAR,Grade) 
ELSE @ grade_list  + ', ' + CONVERT(VARCHAR,Grade) END
FROM Table1where Id = 1
SELECT @grade_list as Grade


or you could do like this:

SELECT Id,
 SUBSTRING
 (
  SELECT  (', ' + Grade)
  FROM table1 t2 
  WHERE t1.Id = t2.Id
  ORDER BY t1.Id, t2.Id
  FOR XML PATH('')), 3, 1000)
FROM table1 t1
GROUP BY Id


Happy Coding!!