为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2019-05-31 16:37:40
如何在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,以此类推。我想要我的输出等等,所以请在查询的时候帮助我。提前谢谢。
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

这也可以使用Scalar-Valued Function在……里面MSSQL 2008

声明您的功能如下,


CREATE FUNCTION [dbo].[FunctionName]

(@MaskId INT)

RETURNS Varchar(500) 

AS

BEGIN


    DECLARE @SchoolName varchar(500)                        


    SELECT @SchoolName =ISNULL(@SchoolName ,'')+ MD.maskdetail +', ' 

    FROM maskdetails MD WITH (NOLOCK)       

    AND MD.MaskId=@MaskId


    RETURN @SchoolName


END

然后您的最后查询将是


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 ;

注:您可能需要更改函数,因为我不知道完整的表结构。


查看完整回答
反对 回复 2019-05-31
  • 3 回答
  • 0 关注
  • 748 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信