0

I have records

ID      zone
1         A
1         B
2         C
2         D
2         E
3         F

I want to have result like this

ID        zones
1         A/B
2         C/D/E
3         F

is there a simple query can do for this in MS sql?

pnuts
  • 58,317
  • 11
  • 87
  • 139
  • 1
    This isn't really a pivot problem, but more of a [`GROUP_CONCAT` workaround issue](http://stackoverflow.com/q/451415/314291) – StuartLC Mar 07 '14 at 12:43

1 Answers1

2

Test Data

DECLARE @TABLE TABLE(ID INT,zone CHAR(1))
INSERT INTO @TABLE VALUES
(1,'A'),(1,'B'),(2,'C'),
(2,'D'),(2,'E'),(3,'F')

Query

SELECT  t.ID
       ,STUFF((SELECT '/'+ zone
               FROM @TABLE
               WHERE ID = t.ID
               FOR XML PATH(''),TYPE).
               value('.','NVARCHAR(MAX)'),1,1,'') AS Zones

FROM @TABLE t
GROUP BY t.ID

Result Set

╔════╦═══════╗
║ ID ║ Zones ║
╠════╬═══════╣
║  1 ║ A/B   ║
║  2 ║ C/D/E ║
║  3 ║ F     ║
╚════╩═══════╝

Working SQL FIDDLE

M.Ali
  • 67,945
  • 13
  • 101
  • 127