一尘不染

SSRS-使用表达式等效于Group_Concat?

sql

我可以在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

阅读 169

收藏
2021-03-10

共1个答案

一尘不染

尝试这样的事情(适用于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)
2021-03-10