sql - SQL server 中的 String_agg 等效函数
问题描述
我想用可用的东西或其他选项而不是 string_agg 函数重写我的 SQL 查询,因为我的 SQL 服务器不支持它。谁能帮我解决这个问题?
select String_agg(air.code,',') AS Code,String_agg(air.Id,',') AS AId,res.ResId
from Table1 air
inner join
Table2 rmap on air.Id=airmap.Id
inner join Table3 res on rmap.ResId=res.ResId
group by res.ResId
解决方案
大概,你想要这样的东西:
select res.ResId,
stuff( (select ',' + air.code
from table1 air inner join
Table2 rmap
on air.Id = airmap.Id
where rmap.ResId = res.ResId
for xml path ('')
), 1, 1, '') as codes,
stuff( (select ',' + air.aid
from table1 air inner join
Table2 rmap
on air.Id = airmap.Id
where rmap.ResId = res.ResId
for xml path ('')
), 1, 1, '') as aids
from Table3 res ;
推荐阅读
- powershell - SAMAccountName 20 个字符或更少
- javascript - ASP.NET Core 和 JavaScript Ajax API 调用另一个主机
- javascript - 画布宽度和高度在移动设备中不起作用
- azure-functions - 完成日志的间歇记录
- javascript - Javascript'x天前'到日期时间
- python - 将具有不同标头的 json 对象列表转换为 csv
- ios - iOS 14 上的动画 UIView
- java - Xpath 查找内部文本
- python - Python有效地在部分更新的数组中找到最大值索引
- sql - 比较和查找 SSMS/SQL Server 上一个表中的行之间的差异