我知道在sql server中我们不能使用Group_concat
函数,但是这里有一个问题,我需要Group_Concat
我的查询。我google它找到一些逻辑,但不能纠正it.My sql查询是
select m.maskid,m.maskname,m.schoolid,s.schoolname,
md.maskdetail
from tblmask m join school s on s.id = m.schoolid
join maskdetails md on m.maskid = md.maskid
order by m.maskname ;
它给我的结果是
只要看一下maskid中前3行,maskname、学校In、学校名是相同的,但是maskdetail是不同的,所以想要在最后一列包含所有maskdetails的那一行,依此类推。
我希望我的输出像这样
所以on.So在查询的时候请帮帮我。
提前谢谢。
Select
A.maskid
, A.maskname
, A.schoolid
, B.schoolname
, STUFF((
SELECT ',' + T.maskdetail
FROM dbo.maskdetails T
WHERE A.maskid = T.maskid
FOR XML PATH('')), 1, 1, '') as maskdetail
FROM dbo.tblmask A
JOIN dbo.school B ON B.ID = A.schoolid
Group by A.maskid
, A.maskname
, A.schoolid
, B.schoolname
请运行以下查询,在您的情况下它不需要STUFF和GROUP BY:
Select
A.maskid
, A.maskname
, A.schoolid
, B.schoolname
, CAST((
SELECT T.maskdetail+','
FROM dbo.maskdetails T
WHERE A.maskid = T.maskid
FOR XML PATH(''))as varchar(max)) as maskdetail
FROM dbo.tblmask A
JOIN dbo.school B ON B.ID = A.schoolid