私の質問に対する答えは、私には理解できない単純なものになると思います。シナリオは次のとおりです。
SQL Server 2008 R2を使用しています。テーブルには、データが次の形式で保存されるXML列があります。
<Person>
<firstName>John</firstName>
<lastName>Lewis</lastName>
</Person>
Person
ノードには、要素名が異なる可能性のある子ノードをいくつでも含めることができます(事前にはわかりません)。すべてのノードの値を属性として持つXMLを返すクエリを探しています。
したがって、上記のXMLの出力は次のようになります。
<Person firstName="John" lastName="Lewis"/>
上記の出力を取得するためのクエリは考えられません。次のようなクエリは使いたくない
Select
PersonColumn.value('(/Person/firstName)[1]', 'varchar(100)') AS '@firstName'
, PersonColumn.value('(/Person/lastName)[1]', 'varchar(100)') AS '@lastName'
FROM MyTable
WHERE MyTable.MyPrimaryKey=1
FOR XML PATH('Person'), TYPE
ノードの下にどのノードがあるのかわからないのでPerson
。