您的位置:首页 > 数据库

SQL SERVER FOR XML PATH 用法

2018-03-24 11:08 405 查看
      有时候我们需要把多行数据,合并成一行显示,并用逗号或者其他方式分隔显示,这时候我们可以使用FOR XML PATH的方式,来实现需求。测试数据如下:--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([Province] nvarchar(22),[City] nvarchar(23))
Insert #T
select N'河北',N'石家庄' union all
select N'河北',N'唐山' union all
select N'河北',N'秦皇岛' union all
select N'山西',N'太原' union all
select N'山西',N'大同'
Go
--测试数据结束      我们想按照省份显示该省所有的市区,并且每个省份只显示一条数据,写法如下:SELECT [Province] ,
STUFF(( SELECT ',' + #T.[City]
FROM #T
WHERE [Province] = a.[Province]
FOR
XML PATH('')
), 1, 1, '') AS value
FROM #T a
GROUP BY a.[Province]       结果如下:



      这样我们就通过FOR XML PATH的方式实现了我们的需求,当然FOR XML PATH还有其他很多用法,而且合并显示的方法也有其他写法,后续慢慢补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息