ノード名/属性名が不明なxmlノード属性をTSQLでアンピボットする方法を探しています
DECLARE @Raw XML = '<contact id=1 firstname="liz" lastname="simple" email="liz@sample.com"/>'
次のような結果が必要です。
id 1
firstname liz
lastname simple
email liz@sample.com
ノード名/属性名が不明なxmlノード属性をTSQLでアンピボットする方法を探しています
DECLARE @Raw XML = '<contact id=1 firstname="liz" lastname="simple" email="liz@sample.com"/>'
次のような結果が必要です。
id 1
firstname liz
lastname simple
email liz@sample.com
クエリ
DECLARE @Raw XML = '<contact id="1"
firstname="liz"
lastname="simple"
email="liz@sample.com"/>'
select n.n.value('local-name(.)', 'nvarchar(max)') name,
n.n.value('.', 'nvarchar(max)') value
from @raw.nodes('/*/@*') n(n)
結果
name value
----------- ----------------
id 1
firstname liz
lastname simple
email liz@sample.com