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还有其他很多用法,而且合并显示的方法也有其他写法,后续慢慢补充。
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还有其他很多用法,而且合并显示的方法也有其他写法,后续慢慢补充。
相关文章推荐
- sqlserver for xml path用法
- 【转】灵活运用 SQL SERVER FOR XML PATH
- 灵活运用 SQL SERVER FOR XML PATH
- SQLServer For XML Path的运用
- sql for xml path用法
- SQL Server FOR XML PATH 语句的应用
- 灵活运用 SQL SERVER FOR XML PATH
- SQL Server For XML PATH使用
- 灵活运用 SQL SERVER FOR XML PATH
- 灵活运用 SQL SERVER FOR XML PATH
- SQL Server FOR XML PATH 语句的应用
- SQL Server FOR XML PATH 语句的应用
- [转]灵活运用 SQL SERVER FOR XML PATH
- 灵活运用 SQL SERVER FOR XML PATH
- SQL Server FOR XML PATH 语句的应用
- 灵活运用 SQL SERVER FOR XML PATH
- 灵活运用SQL SERVER FOR XML PATH
- 灵活运用 SQL SERVER FOR XML PATH
- 灵活运用 SQL SERVER FOR XML PATH
- oracle wmsys.wm_concat ;sqlserver FOR XML PATH