2013-03-20 9 views
2

Мне нужно вернуть псевдоним столбца, в котором есть пробелы в XML из SQL Server. Поскольку вы не можете иметь пробелы в именах столбцов XML, я хотел бы вернуть этот псевдоним в атрибут «columnName». Как правило, XML должен был бы выглядеть следующим образом:SQL Server: укажите имя столбца в качестве атрибута с помощью FOR XML

<customers> 
<customer name="Shmo, Joe"> 
    <over50 columnName="Number of Orders Over 50 Pounds" value="10"> 
    <cancelled columnName="Orders Cancelled" value="2"> 
</customer> 
</customers> 

таблица выглядит следующим образом:

|Name  |over50|cancelled 
--------------------------- 
|Shmo, Joe| 10 | 2 

Если возможно, я бы очень хотел, чтобы использовать метод «FOR XML» извлечения XML , Заранее благодарим за понимание.

ответ

2

Это должно быть сделано.

SELECT Name AS [@name], 
     'Number of Orders Over 50 Pounds' AS [over50/@columnName], 
     over50 AS [over50/@value], 
     'Orders Cancelled' AS [cancelled/@columnName], 
     cancelled AS [cancelled/@value] 
FROM YourTable 
FOR XML PATH('customer'), ROOT('customers') 

SQL Fiddle

+0

Shazam! Это точно. Спасибо, Мартин. – DerPflug