FOR XML PATH的作用就是将查询结果以XML形式展示,但是通过FOR XML PATH可以简化我们的查询语句,并实现以前一些需要借助函数才能实现的功能,如将查询结果以字符串的形式进行拼接。
1、把查询的结果转换为XML文件,TestTable表记录如下
FID FName FSex
1 张三 男
2 李四 男
3 王五 男
4 赵小花 女
5 苏××× 女
6 周小萌 女
包含for xml path的SQL语句如下
select FID,FName,FSex from TestTable for xml path
执行SQL语句后的结果为
<row> <FID>1</FID> <FName>张三</FName> <FSex>男</FSex> </row> <row> <FID>2</FID> <FName>李四</FName> <FSex>男</FSex> </row> <row> <FID>3</FID> <FName>王五</FName> <FSex>男</FSex> </row> <row> <FID>4</FID> <FName>赵小花</FName> <FSex>女</FSex> </row> <row> <FID>5</FID> <FName>苏×××</FName> <FSex>女</FSex> </row> <row> <FID>6</FID> <FName>周小萌</FName> <FSex>女</FSex> </row>
2、使用for xml path实现字段拼接
把性别是男的人名拼接起来,需要的sql语句如下:
select ' '+FName from TestTable where FSex='男' for xml path('')
sql语句执行后的结果为: 张三 李四 王五。这样就实现了吧查询结果拼接的目的了。
3、在sql的查询中,一般使用相关子查询的方式,实现把拼接的结果输出的sql结果集中。如果字符串的拼接使用相关字符(|,)进行拼接的话,通常配合stuff函数进行操作。stuff函数的使用方法参照我的另一篇博客《SQL Server stuff函数的用法》。
转载于:https://blog.51cto.com/helicon/1794254