s-s-rS - Group_Concat 使用表达式等效?
Posted
技术标签:
【中文标题】s-s-rS - Group_Concat 使用表达式等效?【英文标题】:s-s-rS - Group_Concat Equivalent using an Expression? 【发布时间】:2010-08-02 15:44:41 【问题描述】:我可以在 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
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于s-s-rS - Group_Concat 使用表达式等效?的主要内容,如果未能解决你的问题,请参考以下文章