并带有分隔符,灵活运用

docs.microsoft.com 链接:  [SQL 

FO翼虎 XML PATH
有的人也许知道有些人只怕不通晓,其实它正是将查询结果集以XML方式显示,有了它大家能够简化大家的查询语句达成部分在先或许须要借助函数活存款和储蓄进程来形成的工作。那么以二个实例为主.

](
XML PATH应用**

1.FO凯雷德 XML PATH 简单介绍

 

那正是说如故率先来介绍一下FOPRADO XML PATH
,借使以往有一张兴趣爱好表(hobby)用来存放在兴趣爱好,表结构如下:图片 1

率先呢!大家在增多一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的欢跃!那么未来表结构如下:

接下去我们来看使用FO奥迪Q5 XML PATH的询问结果语句如下:

 

SELECT*FROM@hobbyFOR XML
PATH

           图片 2

结果:

 

图片 3

       
那时,大家的须要是询问学生表,展现全部学员的爱好的结果集,代码如下:

<row>
<hobbyID>1</hobbyID>
<hName>爬山</hName>
</row>
<row>
<hobbyID>2</hobbyID>
<hName>游泳</hName>
</row>
<row>
<hobbyID>3</hobbyID>
<hName>美食</hName>
</row>

 

图片 4

SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM (
SELECT sName,
(SELECT hobby+',' FROM student 
  WHERE sName=A.sName 
  FOR XML PATH('')) AS StuList
FROM student A 
GROUP BY sName
) B 

总之FO猎豹CS陆 XML PATH 可以将查询结果根据行输出成XML各式!

       
 结果如下:图片 5

那正是说,怎么着改变XML行节点的称呼呢?代码如下:

 

SELECT*FROM@hobbyFOR XML
PATH(‘MyHobby’)

SELECT B.sName,LEFT(StuList,LEN(StuList)-一) as hobby  正是来去掉逗号

 

 

结果自然也综上可得了呢?没有错原来的行节点<row>
变成了大家在PATH后边括号()中,自定义的名目<MyHobby>,结果如下:

图片 6

<MyHobby>
<hobbyID>1</hobbyID>
<hName>爬山</hName>
</MyHobby>
<MyHobby>
<hobbyID>2</hobbyID>
<hName>游泳</hName>
</MyHobby>
<MyHobby>
<hobbyID>3</hobbyID>
<hName>美食</hName>
</MyHobby>

图片 7

本条时候细心的朋友肯定又会问那么列节点如何转移呢?还记的给列起外号的首要性字AS吗?对了便是用它!代码如下:

SELECT hobbyID as’MyCode’,hName
as’MyName’FROM@hobbyFOR XML
PATH(‘MyHobby’)

 

那么这年我们列的节点名称也会编制程序我们自定义的名号
<MyCode>与<MyName>结果如下:

图片 8

<MyHobby>
<MyCode>1</MyCode>
<MyName>爬山</MyName>
</MyHobby>
<MyHobby>
<MyCode>2</MyCode>
<MyName>游泳</MyName>
</MyHobby>
<MyHobby>
<MyCode>3</MyCode>
<MyName>美食</MyName>
</MyHobby>

图片 9

喔!
既然行的节点与列的节点大家都得以自定义,我们是或不是能够创设大家欣赏的输出情势啊?依然看代码:

网站地图xml地图