我正在寻找一种在 TSQL 中取消透视 xml 节点属性的方法,其中节点名称/属性名称是未知的
DECLARE @Raw XML = '<contact id=1 firstname="liz" lastname="simple" email="liz@sample.com"/>'
我需要看起来像这样的结果:
id 1
firstname liz
lastname simple
email liz@sample.com
我正在寻找一种在 TSQL 中取消透视 xml 节点属性的方法,其中节点名称/属性名称是未知的
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