在 string_agg 函数内转换为 varchar max

Jes*_*sus 9 sql t-sql

我有一个 STRING_AGG 函数,它抛出错误

错误消息:STRING_AGG 聚合结果超出了 8000 字节的限制。使用 LOB 类型以避免结果截断。

正如本文档所说,我需要转换为varchar(max)

当前的:

 STRING_AGG(CONCAT([CT].[DeviceType] , ': ' , [COM].[Address]) , ', ')) AS [Contact]
Run Code Online (Sandbox Code Playgroud)

尝试:

STRING_AGG(CONVERT(VARCHAR(MAX),(CONCAT([CT].[DeviceType] , ': ' , [COM].[Address])) , ', ')) AS [Contact]
Run Code Online (Sandbox Code Playgroud)

但它抛出错误:

STRING_AGG 函数需要 2 个参数。

我究竟做错了什么?问候

Stu*_*Stu 17

您已将分隔符放在 concat 中它应该是第二个参数:

STRING_AGG(CONVERT(VARCHAR(MAX),(CONCAT([CT].[DeviceType] , ': ' , [COM].[Address])) ), ', ') AS [Contact]
Run Code Online (Sandbox Code Playgroud)