微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Server2008 中 XQuery 小牛试刀

前几天一个小活,基于性能考虑到使用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转换为了我们常用的数据表,并且可以轻松的使用它来为我们服务。比起传统的到客户端再解析,简直方便多了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐