Possible Duplicate:
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?
I would like to combine all records in a certain field into a single cell (per value from another column) if the count of the records is more than 1. For example, if I have the following code
SELECT city, count(zoo name) AS 'count of zoo name' FROM mytable
It would generate the below results
The original table looks like this
Since both Atlanta and New York have more than one zoo and Tokyo only has one zoo, the final result should look like
How would I go about doing this? I thought about using the PIVOT construct, but that creates new columns for each possible value. I would also have to write the name of every possible zoo name into the PIVOT. This would be bad form since the actual data has much more possible values of "zoo name" than the above.
You can use XML Path to concat the column value
;With Cte(city,concat) as
(
select city, (select a.Zoo+','
from Sample a
where a.city=b.city
for XML PATH ('') ) concat
from Sample b
group by city
)
Select city,left(concat, len(concat) -1) from cte
Check the result in SQL Fiddle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With