У меня есть простая таблица в SQL Server 2005, я хочу преобразовать ее в XML (используя предложение FOR FOR). У меня проблемы с тем, чтобы мой 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>
Edit:
Насколько я могу судить, мне нужно несколько значений. Я создаю XML для использования с Xcelsius ( Связывание XML и Xcelsius ), поэтому не имею никакого контроля над форматированием XML. Я могу сгенерировать XML с использованием ASP согласно связанному учебнику, но я надеялся получить его прямо из 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">
повторяется для каждого ряда, которого у меня не может быть.