您的位置:首页 > 数据库 > MySQL

MSSQL 通过FOR XML PATH 模仿MYSQL的 group_concat 函数,將纪录值合并成字符串

2015-10-14 12:14 561 查看
MSSQL 通过FOR XML PATH 模仿MYSQL的 group_concat 函数,將纪录值合并成字符串
;with tbl(id, s, sort) as
(
select 1, '广东省', 3 union all
select 1, '广州市', 2 union all
select 1, '越秀区', 1 union all
select 2, '北京市', 2 union all
select 2, '朝阳区', 1
)
select id,
(
stuff((select N','+ s
from tbl
where id=t.id
order by sort desc
FOR XML PATH('')), 1, 1, N'')
) as xmls
from tbl as t
group by t.id
order by t.id


stuff(字符串表达式1,开始位置,长度,字符串表达式2):在字符串表达式1中在指定的开始位置删除指定长度的字符,并在指定的开始位置处插入字符串表达式2。返回新字符串。

select N','+ s from tbl FOR XML PATH('')將tbl 表的 S字段查询出来,并用xml格式表示, 中间用 , 隔开。

PATH('') 括号中表示字段值前后添加何种标签。

MYSQL 提供了直接分组合并的函数

select id, group_concat(s, ',') as s from tbl group by id
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: