.STRING_AGG AS 的拼接字段长度不能超过1333咋办
时间: 2024-02-20 17:00:54 浏览: 55
解决Oracle没有WM_CONCAT函数.zip
如果你使用的是 SQL Server 2017 或更高版本,可以使用 STRING_AGG 函数的 WITHIN GROUP (ORDER BY) 子句来解决这个问题。这个子句允许你对拼接的子字符串进行排序,从而保证最终的字符串长度不会超过 1333。
举个例子,假设有一个表格名为 Employee,包含两个字段:Name 和 Department。你想要按照 Department 对 Name 进行拼接,并将结果存储在一个名为 EmployeeList 的变量中。以下是一个使用 WITHIN GROUP (ORDER BY) 子句的示例:
```
DECLARE @EmployeeList VARCHAR(8000)
SELECT @EmployeeList = STRING_AGG(Name, ', ') WITHIN GROUP (ORDER BY Name)
FROM Employee
GROUP BY Department
```
在这个示例中,我们将 Name 字段按照字母顺序进行排序,并使用逗号加空格作为分隔符。由于我们使用了 WITHIN GROUP (ORDER BY) 子句,所以即使在拼接后的字符串长度超过 1333,也不会出现截断的情况。
阅读全文