我需要从XML获得所有值要么呈现元素或属性。如何在SQL中获取XML元素和属性值?
例子:
DECLARE @XML = '<root>
<row1 attr1="x">1</row1>
<row2 attr2="x">2</row2>
</root>'
在这里,我的预期输出:
Column Value
---------------------
row1 1
attr1 x
row2 1
attr2 x
我能够得到的元素,并通过使用下面的查询单独的属性值。
SELECT
element.value('local-name(.)', 'VARCHAR(50)'),
element.value('.', 'VARCHAR(100)')
FROM
@OldXML.nodes('/root/*') node(element)
SELECT
element.value('local-name(.)', 'VARCHAR(50)'),
element.value('.', 'VARCHAR(100)')
FROM
@OldXML.nodes('/root/row1/@*') node(element)
SELECT
element.value('local-name(.)', 'VARCHAR(50)'),
element.value('.', 'VARCHAR(100)')
FROM
@OldXML.nodes('/root/row2/@*') node(element)
但是,我需要在单个查询中获取值。
我上网的方法很多,但我不能得到这个需求的解决方案。
有没有办法做到这一点?
XML的支持是**高度特定供应商的** - 所以请添加标签到指定是使用了'mysql','postgresql','SQL-server','oracle'或'db2' - 或完全是另一回事。 –