加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Server2008 中 XQuery 小牛试刀

发布时间:2020-12-12 15:04:33 所属栏目:MsSql教程 来源:网络整理
导读:前几天一个小活,基于性能考虑到使用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转换为了我们常用的数据表,并且可以轻松的使用它来为我们服务。比起传统的到客户端再解析,简直方便多了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读