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

sql-server – 使用SQL选择单个xml节点

发布时间:2020-12-12 08:44:19 所属栏目:MsSql教程 来源:网络整理
导读:我有一个很大的 XML音符与许多节点. 有没有办法只能从较大的XML中选择一个节点及其所有内容? 我正在使用sql 2005 解决方法 如果您想要获得XML的一部分,您应该使用 query() Method. declare @XML xmlset @XML = 'root row1 value1/value /row1 row2 value2/va
我有一个很大的 XML音符与许多节点.

有没有办法只能从较大的XML中选择一个节点及其所有内容?

我正在使用sql 2005

解决方法

如果您想要获得XML的一部分,您应该使用 query() Method.
declare @XML xml

set @XML = 
'
<root>
  <row1>
    <value>1</value>
  </row1>
  <row2>
    <value>2</value>
  </row2>
</root>
'

select @XML.query('/root/row2')

结果:

<row2>
  <value>2</value>
</row2>

如果你想要特定节点的值,你应该使用value() Method.

select @XML.value('(/root/row2/value)[1]','int')

结果:

2

更新:

如果你想将你的XML分割成多行,你可以使用nodes() Method.

得到价值观:

declare @XML xml

set @XML = 
'
<root>
  <row>
    <value>1</value>
  </row>
  <row>
    <value>2</value>
  </row>
</root>
'

select T.N.value('value[1]','int')
from @XML.nodes('/root/row') as T(N)

结果:

(No column name)
1
2

获取整个XML:

select T.N.query('.')
from @XML.nodes('/root/row') as T(N)

结果:

(No column name)
<row><value>1</value></row>
<row><value>2</value></row>

(编辑:李大同)

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

    推荐文章
      热点阅读