Server2008 中 XQuery 小牛试刀

Server2008 中 XQuery 小牛试刀,第1张

概述前几天一个小活,基于性能考虑到使用Sqlserver2008中用XQuery的方式来解析XML数据,   感觉相当不错。   Declare @XMLData xml Set @XMLData = '<source>      <student id="001" name="张三">        <语文>1</语文>        <数学>2</数学>        <地理>3</地理>    

前几天一个小活,基于性能考虑到使用sqlserver2008中用Xquery的方式来解析XML数据,

 

感觉相当不错。

 

Declare @XMLData xml

Set @XMLData = '<source>
     <student ID="001" name="张三">
       <语文>1</语文>
       <数学>2</数学>
       <地理>3</地理>
       <生物>4</生物>
       <物理>5</物理>
       <化学>6</化学>
     </student>
     <student ID="002" name="李四">
       <语文>101</语文>
       <数学>2</数学>
       <地理>3</地理>
       <生物>4</生物>
       <物理>5</物理>
       <化学>6</化学>
     </student>
     <student ID="003" name="王五">
       <语文>102</语文>
       <数学>2</数学>
       <地理>3</地理>
       <生物>4</生物>
       <物理>5</物理>
       <化学>6</化学>
     </student>
     <student ID="005" name="黑六">
       <语文>103</语文>
       <数学>2</数学>
       <地理>3</地理>
       <生物>4</生物>
       <物理>5</物理>
       <化学>6</化学>
     </student>
    </source>'

Select
     c.value('../@id','varchar(50)') as '学号',CONVERT( varchar(50),c.query('fn:local-name(.)') ) as '科目',c.query('text()') ) as '成绩'
From @XMLData.nodes('source/*/*') as t(c)

 

 

SELECT @XMLData.query('for $s in //source/student/* return <student><Subject key="{local-name($s)}"></Subject></student>')

 

 

这样轻松就把一个多维的XML转换为了我们常用的数据表,并且可以轻松的使用它来为我们服务。比起传统的到客户端再解析,简直方便多了

总结

以上是内存溢出为你收集整理的Server2008 中 XQuery 小牛试刀全部内容,希望文章能够帮你解决Server2008 中 XQuery 小牛试刀所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1181473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存