0

我正在使用 SQL Server 2017 Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) Nov 2 2020 19:19:59 版权所有 (C) 2017 Microsoft Corporation Developer Edition (64-bit) o​​n Windows 10 专业版 10.0(内部版本 19042:)。

我正在尝试对 STRING_AGG 函数的结果进行排序。

这工作正常

SELECT STRING_AGG(Category,', ') AS Result
FROM LegacyReviews_Categories

这给了我错误“消息 102,级别 15,状态 1,行 1 '(' 附近的语法不正确。”

SELECT STRING_AGG(Category,', ') WITHIN GROUP ( ORDER BY Category ASC) AS Result
FROM LegacyReviews_Categories
4

1 回答 1

2

我也可以在 SQL Server 2019 build 15.0.4198.2 上重现这个。

它只需要在设置为 (2008) 的数据库的上下文中运行COMPATIBILITY_LEVEL查询100

在此处输入图像描述

所有其他(后来的)兼容性级别都可以工作。

该文件指出

STRING_AGG 可用于任何兼容级别。

并且没有提到这一点。

如果您无法将数据库的兼容性级别更改为更高的级别,那么您可能需要退回到XML PATH连接有序结果的旧方法。

于 2022-02-07T20:13:47.353 回答