SQL 服务器 2017 STRING_AGG 排序依据
SQL Server 2017 STRING_AGG Order By
我正在使用 SQL Server 2017 Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) 2020 年 11 月 2 日 19:19:59 版权所有 (C ) Windows 10 Pro 10.0(内部版本 19042: )上的 2017 Microsoft Corporation Developer Edition(64 位)。
我正在尝试对 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
我也可以在 SQL Server 2019 build 15.0.4198.2 上重现这个。
它只需要在数据库上下文中查询 运行 设置为 100
(2008) 的 COMPATIBILITY_LEVEL
。
所有其他(更高版本)兼容级别均有效。
STRING_AGG is available in any compatibility level.
并没有提到这个。
如果您无法将数据库的兼容级别更改为更高级别,那么您可能需要回退到连接有序结果的旧 XML PATH
方法。
我正在使用 SQL Server 2017 Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) 2020 年 11 月 2 日 19:19:59 版权所有 (C ) Windows 10 Pro 10.0(内部版本 19042: )上的 2017 Microsoft Corporation Developer Edition(64 位)。
我正在尝试对 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
我也可以在 SQL Server 2019 build 15.0.4198.2 上重现这个。
它只需要在数据库上下文中查询 运行 设置为 100
(2008) 的 COMPATIBILITY_LEVEL
。
所有其他(更高版本)兼容级别均有效。
STRING_AGG is available in any compatibility level.
并没有提到这个。
如果您无法将数据库的兼容级别更改为更高级别,那么您可能需要回退到连接有序结果的旧 XML PATH
方法。