Bij*_*mas 2 xml sql-server-2012
我有一个带有 SQL Server 2012 结构的 xml 列
<root>
<person>
<firstName>Jon</firstName>
<lastName>Johnson</lastName>
</person>
Run Code Online (Sandbox Code Playgroud)
我怎样才能检索数据
Key | Value
-------------------------------------------------------------------
First Name | Jon
Last Name | Johnson
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情:
DECLARE @input TABLE (ID INT NOT NULL, XmlData XML)
INSERT INTO @input VALUES(1, '<root>
<person>
<firstName>Jon</firstName>
<lastName>Johnson</lastName>
</person></root>')
select
XC.value('local-name(.)', 'varchar(50)'),
XC.value('(.)[1]', 'varchar(50)')
FROM
@input
CROSS APPLY
XmlData.nodes('/root/person/*') AS XT(XC)
WHERE
ID = 1
Run Code Online (Sandbox Code Playgroud)
通过在 XPathCROSS APPLY上使用/nodes/person/*,您基本上会获得一个 XML 片段的伪表 - 一个对应于 的每个子元素<person>。用于local-name(.)获取XML 元素的名称.,并获取该 XML 元素的值。
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |