将多行合并为一行并组合列SQL
发布时间:2020-12-12 06:31:31 所属栏目:MsSql教程 来源:网络整理
导读:我试图让这个视图查询两个表,然后将每个程序ID汇总到一行,其中所有AttributeNames都在AttributeNames列中 我加入了这两个表,它提取了适当数量的记录. 现在,我需要的部分就是将每个ProgramID和一个所有AttributeNames一起放在每个id的AttributeNames列中. 示例
我试图让这个视图查询两个表,然后将每个程序ID汇总到一行,其中所有AttributeNames都在AttributeNames列中
我加入了这两个表,它提取了适当数量的记录. 示例:全部在一行中. ProgramID | AttributeNames 887 | Studydesign,Control Groups,Primary Outcomes. 这是我需要修改的SQL VIEW的图像,所以它执行此操作: 查询: SELECT TOP (100) PERCENT dbo.tblProgramAttributes.ProgramID,dbo.tblProgramAttributes.AttributeID AS PAattributeID,dbo.tblAttributes.AttributeID,dbo.tblAttributes.AttributeName FROM dbo.tblProgramAttributes INNER JOIN dbo.tblAttributes ON dbo.tblProgramAttributes.AttributeID = dbo.tblAttributes.AttributeID WHERE (dbo.tblProgramAttributes.AttributeID NOT LIKE '%ProgramType%') ORDER BY dbo.tblProgramAttributes.ProgramID DESC 解决方法select ProgramId,stuff( ( select ','+ [attributename] from Table1 where programid = t.programid for XML path('') ),1,'') as AttributeNames from (select distinct programid from Table1 )t 看看我的sql fiddle 结果 PROGRAMID ATTRIBUTENAMES 887 Study Design,Primary Outcomes (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |