Server2008 中 XQuery 小牛试刀

本文介绍了一种使用SQL Server 2008的XQuery功能高效解析XML数据的方法。通过实例演示了如何将多维XML数据转换为表格形式,便于进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值