我在 SQL Server 2005 中有一个简单的表,我希望将其转换为 XML(使用“FOR XML”子句)。我无法让我的 XML 看起来像所需的输出。
我试过浏览网上的各种教程,但我很挣扎。有人可以帮忙吗?
我的桌子看起来像这样
TYPE,GROUP,VALUE
Books,Hardback,56
Books,Softcover,34
CDs,Singles,45
CDS,Multis,78
我需要的输出样式是:
<data>
<variable name="TYPE">
<row>
<column>GROUP</column>
<column>VALUE</column>
</row>
<row>
<column>GROUP</column>
<column>VALUE</column>
</row>
</variable>
<variable name="TYPE">
<row>
<column>GROUP</column>
<column>VALUE</column>
</row>
<row>
<column>GROUP</column>
<column>VALUE</column>
</row>
</variable>
</data>
编辑: 据我所知,我需要多个值。我正在生成与 Xcelsius 一起使用的 XML(链接 XML 和 Xcelsius),因此无法控制 XML 的格式。我可以按照链接教程使用 ASP 生成 XML,但我希望直接从 SQL Server 获取它。
编辑2: 我希望有一些优雅和整洁的东西......但Godeke的例子最接近。一些摆弄SQL,我想出了:
select
"type" as '@name',
"group" as 'row/column',
null as 'row/tmp',
"value" as 'row/column'
from tableName
for xml path('variable'), root('data')
几乎按照我想要的方式输出。null/tmp 行甚至不输出;它只是防止串联。仍然标签<variable name="TYPE">
为每一行重复,这是我不能拥有的。