- 此问题在此处已有答案**:
String_agg for SQL Server before 2017(2个答案)
昨天关门了。
我有以下SQL查询,这是不工作的SQL Server 2016及以下版本
SELECT
(
SELECT STRING_AGG(d.Name, ',') AS divnames
FROM (
SELECT div.name, MHLId
FROM MsrtProfile mp
INNER JOIN Division div ON mp.DivisionId = div.Id
WHERE mp.mhlid = ph.potentialHospitalNo
GROUP BY div.Name, MHLId
) d
) AS divisionnames
FROM xyz ph
示例我的输出如下所示
div1,div2,div3
我需要与逗号值的单列行。
我有两个表如下-第一个表名是Hospital
:
hospitalId name
-----------------
1 a1
2 a2
第二个表名为division
id DivisionName hospitalId
------------------------------
1 d1 1
2 d2 1
3 d3 2
我需要一个如下输出,通过hospitalid连接第一个和第二个表
DivisionName
-------------
d1,d2
d3
1条答案
按热度按时间r1wp621o1#
使用
STRING_AGG
和GROUP BY
似乎是一个非常直接的查询:对于SQL Server2017之前的版本,您需要使用
FOR XML PATH
方法-类似于以下内容: