我需要從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' - 或完全是另一回事。 –