如何在sql server中使用group_conat进行查询

如何在sql server中使用group_conat进行查询

我知道在sql server中我们不能使用Group_concat函数,但是这里有一个我需要处理的问题Group_Concat我在谷歌上发现了一些逻辑,但无法纠正。我的SQL查询是

select  m.maskid,m.maskname,m.schoolid,s.schoolname,md.maskdetailfrom tblmask m join school s on s.id = m.schoolid 
join maskdetails md on m.maskid = md.maskidorder by m.maskname ;

它给我的结果就像


只需查看前3行的那个男孩儿,面具名,学校名称是相同的,但掩蔽细节是不同的,所以要为最后一列可以包含所有掩蔽细节的行,如每个mashchild,以此类推。

我想要我的输出


等等,所以请在查询的时候帮助我。

提前谢谢。


沧海一幻觉
浏览 749回答 3
3回答

手掌心

这也可以使用Scalar-Valued Function在……里面MSSQL 2008声明您的功能如下,CREATE FUNCTION [dbo].[FunctionName](@MaskId INT)RETURNS Varchar(500) ASBEGIN    DECLARE @SchoolName varchar(500)                            SELECT @SchoolName =ISNULL(@SchoolName ,'')+ MD.maskdetail +', '     FROM maskdetails MD WITH (NOLOCK)           AND MD.MaskId=@MaskId    RETURN @SchoolNameEND然后您的最后查询将是SELECT m.maskid,m.maskname,m.schoolid,s.schoolname,(SELECT [dbo].[FunctionName](m.maskid)) 'maskdetail'FROM tblmask m JOIN school s on s.id = m.schoolid ORDER BY m.maskname ;注:您可能需要更改函数,因为我不知道完整的表结构。
打开App,查看更多内容
随时随地看视频慕课网APP