I have a database table with data as shown below:
Primary key | Column1 | Column2 | col3 | col4 |col5
---------------------------------------------------------------------
1 | Chicago Bulls | Michael Jordan | 6'6 | aaaa | cccc
2 | Chicago Bulls | Scottie Pippen | 6'8 | zzzz | 345
3 | Utah Jazz | Malone | 6'9 | vvvv | xcxc
4 | Orlando Magic | Hardaway | 6'7 | xnnn | sdsd
I want to write a query which will fetch all distinct values in Column1 and append values in Column2 for each Column1 value. For eg: The query should return
**Chicago Bulls | Michael Jordan, Scottie Pippen**
**Utah Jazz | Malone**
**Orlando Magic | Hardaway**
I can write a query to fetch all distinct values in column1, then iterate over each distinct value to get the appended column 2 after some manipulation. Is it possible to do the entire job in only one query? Please help with an example of a query. Thanks.
If you are using MySQL
select Column1, group_concat(Column2)
from t
group by Column1
If you are using SQL Server:
SELECT Column1,
stuff((
SELECT ', ' + Column2
FROM tableName as t1
where t1.Column1 = t2.Column1
FOR XML PATH('')
), 1, 2, '')
FROM tableName as t2
GROUP BY Column1
Not sure why Microsoft makes this one so hard, but as far as I know this is the only method to do this in SQL Server...
On a side note you might consider changing Column1 to a lookup table or the next time Utah moves you're going to be hating life ;)
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