sql - 如何在 SELECT FOR XML 查询中选择返回的列名?

标签 sql sql-server xml sql-server-2005

MS SQL 有一种方便的解决方法,可以将多行的列值连接成一个值:

SELECT col1
 FROM table1
 WHERE col2 = 'x'
 ORDER by col3
 FOR XML path('')

然后返回一个不错的记录集:

XML_F52E2B61-18A1-11d1-B105-00805F49916B                                     
---------------------------------------- 
<col1>Foo</col1><col1>Bar</col1>

只有返回记录集中的列名是相当讨厌的!

列名称似乎包含随机元素(或 GUID),因此我不愿意在我的应用程序中使用它(不同的实例或不同的服务器可能有另一个 GUID)。不幸的是,我不能使用 * 来选择值,并且由于现有应用程序中的限制,我也不能遍历返回的列...

有没有办法强制返回的记录集中的列名更合理?

最佳答案

应该这样做:

select(
SELECT col1
 FROM table1
 WHERE col2 = 'x'
 ORDER by col3
 FOR XML path('')
) as myName

不漂亮,但应该能给出你需要的结果

关于sql - 如何在 SELECT FOR XML 查询中选择返回的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/304940/

相关文章:

SQL - 负小时累计总数

sql - 我应该设计一个 SQL Server 数据库来依赖 UNION 还是避免它?

c# - 在一个数据列表模板单元格中显示多个图像

java - 单击 Imgeview 时无法播放音乐文件

sql - 使用列值的排列

sql - 如何在SQL中自动生成像UID12345678这样的唯一ID?

xml - 无法翻译 Odoo 10 中 Qweb 条件内的术语。该怎么做?

c# - 我应该在 C# 中将 XML 生成为字符串吗?

sql - 语法问题 SQL Server。结合 Pivot、XML 解析和 JOIN

mysql - 我如何优化我的 mysql 查询?