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 ( Linking XML and Xcelsius ) で使用する XML を生成しているため、XML のフォーマットを制御できません。リンクされたチュートリアルに従って ASP を使用して XML を生成できますが、SQL Server から直接取得することを望んでいました。
編集 2: エレガントで整頓されたものを望んでいましたが、ゴデケの例が最も近かったです。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">
は行ごとに繰り返されますが、これはできません。