Thursday, 12 October 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
?


style="font-weight: bold;">

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

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...

Blog Archive