【发布时间】:2021-08-22 09:01:19
【问题描述】:
我正在使用FOR XML PATH 函数将多列连接成一行。但是,我不知道如何为结果表的列名设置别名。
这是 SQL 查询:
SELECT Comment
FROM Comments
WHERE ID = 1006
FOR XML PATH('')
我尝试了以下两种生成错误消息的方法:
SELECT Comment
FROM Comments
WHERE ID = 1006
FOR XML PATH('') [Comment_Agg];
SELECT * AS Comment_Agg
FROM
(SELECT Comment
FROM Comments
WHERE ID = 1006
FOR XML PATH(''));
仅供参考,我使用的是 SSMS 18。
【问题讨论】:
-
FY我,SSMS 是无关紧要的,它只是一个使用 SQL Server 的客户端,就像任何其他应用程序一样。
-
如果你想聚合你的字符串,为什么不使用
STRING_AGG? -
@Larnu STRING_AGG 函数在 SSMS 18 中不可用
-
@user9532692 SSMS 只是一个 IDE。 SSMS 18 最高支持 SQL Server 2019,其中包括
STRING_AGG(它是在 SQL Server 2017 中添加的)。我可以向您保证,当连接到支持它的实例时,您可以在使用 SSMS 18 时使用STRING_AGG。 -
@user9532692 in SSMS(或任何连接到 SQL Server 的应用程序 - 甚至是使用 osql 的命令提示符)
select @@version- 如果是 14.x 或 15.x,您可以使用string_agg跨度>
标签: sql-server ssms for-xml-path