Friday, 8 September 2017

sql - Denormalize into pipe separated list












I have a tablle like this:




cust acc
-----------
a 1
b 2
b 3
c 4
c 5

c 6


I want to denormalize above into the following form




cust acc
---------------
a 1
b 2|3

c 4|5|6


please note that the acc column should now contain a pipe delimited list of accounts for any customer. Also the possible number of accounts for a customer can be variable.



how to do this using SQL ?


Answer



try this:



SELECT cust, acc = 

STUFF((SELECT '| ' +CAST( acc as varchar(20))
FROM b
WHERE b.cust = a.cust
FOR XML PATH('')), 1, 2, '')
FROM
a
GROUP BY cust






No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...

Blog Archive