金色坐标

关注互联网和IT科技的个人博客

« 大学生就业问题的本质电影只是在讲故事 »

浅析数据库的FOR XML的应用—PATH模式

AUTO模式能够根据表名来构造XML层次,并将列作为表名元素的属性,还能够通过ELEMENTS将列构造为元素。

但是有时候会出现这样的需求:取另外一个表的某列构成一个元素,或者该表的某些列为元素,某些列为属性。

这个时候,AUTO模式就无法胜任构造这样一个复杂的XML了,此时需要的是PATH模式。

PATH模式我们关注两个问题:

1,如何通过PATH模式来构造元素的属性;

2,如何通过PATH模式构造XML的多层次;

select Cust.customerid as '@Id',
cust.name,orderheader.salesorderid as 'sales/id',
detail.linetotal as 'sales/total',detail.productid as 'sales/proid',
product.name as 'sales/product/name' from
cust,orderheader,detail,product where
cust.customerid=orderheader.customerid and
orderheader.salesorderid=detail.salesorderid
and product.productid=detail.productid
for xml path('cust'),root('data')

形成的XML结果如下:

<data>
  <cust Id="117">
    <name>name1</name>
    <sales>
      <id>47660</id>
      <total>4.69794</total>
      <proid>765</proid>
      <product>
        <name>Road-650 Black, 58</name>
      </product>
    </sales>
  </cust>
  <cust Id="118">
    <name>name2</name>
    <sales>
      <id>49857</id>
      <total>4.4994</total>
      <proid>852</proid>
      <product>
        <name>Women's Tights, S</name>
      </product>
    </sales>
  </cust>
</data>

如例所示,可以通过带有特殊字符'@'来将某列标识为元素的属性,通过'/'来产生多层次的xml结构。

三篇《浅析数据库的FOR XML的应用》都是FOR XML在SQL SERVER中的基本应用,当然还有更多,更广泛的应用,就有待于我们在实际应用中学习,积累和总结了。




原创文章,如转载请注明:转载自金色坐标 [ http://www.kingxy.com/ ]

本文链接地址:http://www.kingxy.com/archives/114.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅
  • 本站支持WAP访问

Search

Google

最新评论及回复

最近发表

金色坐标博客——京ICP备09009094号

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
KingXY Blog - This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.