加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用于group by的tsql聚合字符串

发布时间:2020-12-14 00:50:04 所属栏目:百科 来源:网络整理
导读:我有两张桌子: 名称(id,名称) 地址(id,name_id,地址) 我想编写返回我的查询: 姓名,地址列表(地址1,地址2,地址3,..) 就像是: Select A.name,B.list_of_addressesFrom Names A Inner Join (Select name_id,/*list_of_addresses with comma between them*/ F
我有两张桌子:

名称(id,名称)
地址(id,name_id,地址)

我想编写返回我的查询:
姓名,地址列表(地址1,地址2,地址3,..)

就像是:

Select A.name,B.list_of_addresses
From Names A
    Inner Join (Select name_id,/*list_of_addresses with comma between them*/
                From Addresses
                Group By name_id)  B ON A.id=B.name_id
您可以使用For XML作为从SQL Server 2005开始实现该功能的技巧.
Select
    A.name,stuff((
        select ',' + B.address
        from Addresses B
        WHERE A.id=B.name_id
        for xml path('')),1,'')
From Names A

如果你的地址中还没有逗号,那么效果很好,但即使这样做了,因为你的请求是在它们之间添加逗号……这可能就像’正确’一样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读