我一直在尝试使用 FOR XML 来执行以下操作但没有成功。
源表:
Country | ID | 1950 | 1955
-----------------------------------------------------
Country 1 | 1 | 2.43 | 2.55
Country 2 | 2 | 4.54 | 42.15
期望的输出:
<locations>
<location>
<loc name='Country 1' id='1' />
<dub>
<data year='1950' value='2.43' />
<data year='1955' value='2.55' />
</dub>
</location>
<location>
<loc name='Country 2' id='2' />
<dub>
<data year='1950' value='4.54' />
<data year='1955' value='42.15' />
</dub>
</location>
</locations>
是否有必要为 dub 元素取消透视?我想要最简单的 SQL 查询。我觉得 FOR XML 太难用了。您应该能够仅在列名称上使用简单的 XPath 来指定层次结构,但它不会接受,例如,[dub/data/@year=1955/@value]
作为列的名称[1950]
。