2

我需要从 SQL Server 返回一个在 XML 中包含空格的列别名。由于 XML 列名中不能有空格,我想在“columnName”属性中返回这个别名。通常,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

如果可能的话,我真的很想使用 XML 提取的“FOR XML”方法。提前感谢您的任何见解。

4

1 回答 1

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小提琴

于 2013-03-20T15:56:03.543 回答