如何在sql server中读取XML数据?

问题描述 投票:0回答:1

我有一个 XML

<Table>
  <Columns>
  <Column Name='Name' Datatype='varchar(100)'/>
  </Columns>
  <Rows>
  <Row Name='Test' Number='123'/>
  </Rows>
</Table>

我想读取 sql server 中提供的 xml 中的 Name 值我该怎么做?

我尝试使用

`Declare @XMl XML 
select @xml= cast(Data as xml) from Table
select y.value('Name[1]','varchar(100)') as Name
@xml.nodes(//Row) as x(y)` 

但是我得到空值作为结果集我怎样才能在 sql server 中实现这个

sql-server xml sql-server-2012 ssms sql-server-2016
1个回答
1
投票

像这样:

    declare @doc xml = 
    '<Table>
      <Columns>
      <Column Name="Name" Datatype="varchar(100)"/>
      </Columns>
      <Rows>
      <Row Name="Test" Number="123"/>
      </Rows>
    </Table>'
    
    select r.value('@Name', 'varchar(200)') Name
    from @doc.nodes('/Table/Rows/Row') n(r)
© www.soinside.com 2019 - 2024. All rights reserved.