2

我正在寻找一种在 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
4

1 回答 1

1

询问

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
于 2012-12-11T20:38:30.943 回答