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

在SQLSERVER中的ListAGG

发布时间:2020-12-12 07:06:30 所属栏目:MsSql教程 来源:网络整理
导读:我试图在SQLServer中聚合一个“STRING”字段。我想找到相同的功能LISTAGG喜欢在Oracle。 你知道如何做同样的功能或另一种方法吗? 例如, Field A | Field B1 | A1 | B2 | A 我想这个查询的结果将是 1 | AB2 | A 解决方法 在SQL Server中,可以使用FOR XML PA
我试图在SQLServer中聚合一个“STRING”字段。我想找到相同的功能LISTAGG喜欢在Oracle。

你知道如何做同样的功能或另一种方法吗?

例如,

Field A | Field B
1       |  A
1       |  B
2       |  A

我想这个查询的结果将是

1 | AB
2 | A

解决方法

在SQL Server中,可以使用FOR XML PATH获取结果:
select distinct t1.FieldA,STUFF((SELECT distinct '' + t2.FieldB
         from yourtable t2
         where t1.FieldA = t2.FieldA
            FOR XML PATH(''),TYPE
            ).value('.','NVARCHAR(MAX)'),1,'') data
from yourtable t1;

见SQL Fiddle with Demo

(编辑:李大同)

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

    推荐文章
      热点阅读