我可以在Sql Server Reporting Services中使用表达式来组合组中列的所有值吗?我正在尝试完成MySQL的group_concat函数的功能,但是要在报告中(而不是在查询中)。
例子。我要制作以下数据:
Group 1 Value Test A B Test 2 C D
在报告中查看以下内容:
Group 1 Value test A, B test 2 C, D
尝试这样的事情(适用于SQL Server 2005及更高版本):
set nocount on; declare @t table (id int, name varchar(20), x char(1)) insert into @t (id, name, x) select 1,'test1', 'a' union select 1,'test1', 'b' union select 1,'test1', 'c' union select 2,'test2', 'a' union select 2,'test2', 'c' union select 3,'test3', 'b' union select 3,'test3', 'c' SET NOCOUNT OFF SELECT p1.id, p1.name, stuff( (SELECT ', ' + x FROM @t p2 WHERE p2.id=p1.id ORDER BY name, x FOR XML PATH('') ) ,1,2, '' ) AS p3 FROM @t p1 GROUP BY id, name
输出:
id name p3 ----------- -------------------- --------- 1 test1 a, b, c 2 test2 a, c 3 test3 b, c (3 row(s) affected)