首先介绍一下FOR XML PATH ,假设现在有一张水果表(fruit)用来存放兴趣爱好,表结构如下:
fidfname11苹果22橘子33香蕉
接下来我们来看应用FOR XML PATH的查询结果语句如下:
SELECT * FROM fruit FOR XML PATH结果:
<row> <fid>1</fid> <fname>苹果</fname> </row> <row> <fid>2</fid> <fname>橘子</fname> </row> <row> <fid>3</fid> <fname>香蕉</fname> </row>由此可见FOR XML PATH 可以将查询结果根据行输出成XML各式!
那么,如何改变XML行节点的名称呢?如下:
SELECT * FROM fruit FOR XML PATH('myfruit')结果一定也可想而知了吧?没错原来的行节点<row> 变成了我们在PATH后面括号()中,自定义的名称<myfruit>,结果如下:
<myfruit> <fid>1</fid> <fname>苹果</fname> </myfruit> <myfruit> <fid>2</fid> <fname>橘子</fname> </myfruit> <myfruit> <fid>3</fid> <fname>香蕉</fname> </myfruit>这个时候细心的朋友一定又会问那么列节点如何改变呢?还记的给列起别名的关键字AS吗?对了就是用它!代码如下:
SELECT fid as 'Myfid',fname as 'Myfname' FROM fruit FOR XML PATH('myfruit')那么这个时候我们列的节点名称也会编程我们自定义的名称 <MyCode>与<MyName>结果如下:
<myfruit> <myfid>1</myfid> <myfname>苹果</myfname> </myfruit> <myfruit> <myfid>2</myfid> <fname>橘子</myfname> </myfruit> <myfruit> <myfid>3</myfid> <myfname>香蕉</myfname> </myfruit>噢! 既然行的节点与列的节点我们都可以自定义,我们是否可以构建我们喜欢的输出方式呢?还是看代码:
SELECT '[ '+fname+' ]' FROM fruit FOR XML PATH('')没错我们还可以通过符号+号,来对字符串类型字段的输出格式进行定义。结果如下:
[ 苹果 ][ 橘子 ][ 香蕉 ]那么其他类型的列怎么自定义? 没关系,我们将它们转换成字符串类型就行啦!例如:
SELECT '{'+STR(fid)+'}','[ '+fname+' ]' FROM fruit FOR XML PATH('')好的 FOR XML PATH就介绍到这里吧
