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/