如何在SQL Server中使用group_concat进行查询 [英] How to make a query with group_concat in sql server

查看:529
本文介绍了如何在SQL Server中使用group_concat进行查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道在sql server中我们不能使用Group_concat函数,但这是我需要查询Group_Concat的一个问题.我在google上找到了一些逻辑但无法纠正它.我的sql查询是

I know that in sql server we cannot use Group_concat function but here is one issue i have in which i need to Group_Concat my query.I google it found some logic but not able to correct it.My sql query is

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 ;

它给我的结果就像

仅需查看前3行,因为maskid,maskname,schoolid,schoolname相同,但maskdetail不同,所以要排成一行,其中最后一列可以按maskid包含所有maskdetail,依此类推.

Just look first 3 rows In that maskid,maskname,schoolid,schoolname is same but maskdetail is different so want to one row for that in which last column can contain all maskdetails as per maskid and so on.

我希望输出类似

以此类推.因此,在进行查询时请帮助我.

And so on.So please help me while making a query for that.

谢谢.

推荐答案

查询:

SELECT
      m.maskid
    , m.maskname
    , m.schoolid
    , s.schoolname
    , maskdetail = STUFF((
          SELECT ',' + md.maskdetail
          FROM dbo.maskdetails md
          WHERE m.maskid = md.maskid
          FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM dbo.tblmask m
JOIN dbo.school s ON s.ID = m.schoolid
ORDER BY m.maskname

其他信息:

世界范围内的字符串聚合SQL Server

这篇关于如何在SQL Server中使用group_concat进行查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆