
如何在 SQL Server 中将多行中的文本连接成单个文本字符串?
例子:
Peter Paul Mary
复制
有没有一种简单的方法可以把它变成一串
Peter, Paul, Mary?
复制
我来答
添加附件
收藏
复制链接
微信扫码分享

在小程序上查看
分享
添加附件
问题补充
1条回答
默认
最新
SQL Server 2017新增了 string_agg函数,可以轻松实现分组合并字符串,而不是用xml path,或者写个自定义 函数来实现。
语法:
STRING_AGG ( expression, separator ) [ <order_clause> ]
<order_clause> ::=
WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )
有2个参数,第1个是要合并的字段、表达式,第2个是用什么分隔符,比如:用逗号作为分隔符。
后面的order 子句,是对要合并的数据进行排序,可以升序、降序。
例:
create table test2(country varchar(10),city varchar(10)); insert into test2 values ('中国','台北'); insert into test2 values ('中国','香港'); insert into test2 values ('中国','上海'); insert into test2 values ('日本','东京'); insert into test2 values ('日本','大阪'); select * from test2; COUNTRY CITY ---------- ------------------- 中国 台北 中国 香港 中国 上海 日本 东京 日本 大阪 SELECT country, STRING_AGG (city, ',') WITHIN GROUP (ORDER BY city) city FROM test2 GROUP BY country; COUNTRY CITY ---------- --------------------- 中国 上海,台北,香港 日本 东京,大阪
复制


打赏 0

回答交流
Markdown
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
添加图片链接
上传图片
导航目录
Markdown语法参考
请输入正文
提示
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
