sql-server - SQL Server : Specify Column Name as Attribute Using FOR XML

标签 sql-server space for-xml

我需要从 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

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

最佳答案

这应该可以。

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

关于sql-server - SQL Server : Specify Column Name as Attribute Using FOR XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528265/

相关文章:

sql-server - NVARCHAR(MAX) - 作为 SQL 存储过程输出参数

java - 子集生成器给出 java 堆空间错误

c# - 如何用两个连续的空格分割一个字符串

sql-server - T SQL For XML PATH Group By 作为属性或元素

sql-server - Sql Server 中的 FOR XML 路径

sql - 在FOR XML SELECT中使用CHAR(13)

sql-server - 如何保护 SQL Server 中的 SQL 代码

sql - 更新行 par lot SQL Server

SQL删除两个字符之间的字符串

string - 在字符串中插入空格 (Matlab)