如何在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 ;
注:您可能需要更改函数,因为我不知道完整的表结构。
添加回答
举报
0/150
提交
取消