tsql aggregate string for group by

前端 未结 1 1111
北荒
北荒 2020-12-20 06:10

I have two tables:

Names(id, name) Addresses(id, name_id, address)

I want to write query that return me: name, address list (address1, address2, adress3, ..)

相关标签:
1条回答
  • 2020-12-20 06:28

    You can use For XML as a trick to achieve that from SQL Server 2005 onwards.

    Select
        A.name,
        stuff((
            select ',' + B.address
            from Addresses B
            WHERE A.id=B.name_id
            for xml path('')),1,1,'')
    From Names A
    

    It works well if you don't already have commas in the address, but even if it did, since your request is to put commas between them.. this is probably just as 'right'.

    0 讨论(0)
提交回复
热议问题