Ere*_* G. 36 sql sql-server string aggregate string-aggregation
我需要按组组合文本。我发现了一个名为 的函数STRING_AGG。
select c.id
, c.bereichsname
, STRING_AGG(j.oberbereich,',') oberBereiches
from stellenangebote_archiv as j
join bereiche as c on j.bereich_id = c.id
group by c.id, c.bereichsname
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
STRING_AGG 聚合结果超出了 8000 字节的限制。使用 LOB 类型以避免结果截断。
Bar*_*den 61
尝试如下
select c.id
, c.bereichsname
, STRING_AGG( CAST(j.oberbereich as nvarchar(MAX)),',') oberBereiches
from stellenangebote_archiv j
join bereiche c on j.bereich_id = c.id
group by c.id, c.bereichsname
Run Code Online (Sandbox Code Playgroud)
所以问题是连接字符串的长度超出了结果列的字符限制。
因此,我们通过将所有值转换为“nvarchar(max)”来设置 max 的限制来解决问题。
“STRING_AGG()”函数返回它得到的内容。
小智 5
Baris Erden 非常感谢您的帮助..它对我有用
SELECT Employee_Name, STRING_AGG( CAST(Project_Name AS VARCHAR(MAX)), ',') as all_project_names
FROM [10.180.0.63].ware_dw.dbo.employee_360
group by Employee_Name;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55048 次 |
| 最近记录: |