在 SQL Server 2008 中将行连接成单行
Concatenate rows to single row in SQL Server 2008
我正在使用 MonetDb 进行分析,它使用 SQL Server 2008 进行查询处理。
我有一个 table ROLES,其中包含以下数据。
Emp ROLE
1 ROLE_1
1 ROLE_2
1 ROLE_3
2 ROLE_1
2 ROLE_2
3 ROLE_3
3 ROLE_4
我想要输出为
EMP ROLE
1 ROLE_1, ROLE_2, ROLE_3
2 ROLE_1, ROLE_2
3 ROLE_3, ROLE_4
我试过 group_concat,但它说
no such aggregate 'group_concat'
我试过的查询如下
select
emp,
group_concat(role) as wo
from
roles
group by emp
group_concat
还有其他选择吗?
编辑:
请阅读评论,我正在使用不支持 group_concat 和 xml 的 monetdb。
Monetdb 集成了 R。你可以写一个R函数。
R函数:
CREATE AGGREGATE str_aggre(val STRING) RETURNS STRING LANGUAGE R {
aggregate(val, by=list(aggr_group), FUN=toString)$x
};
SQL 命令:
select
emp,
str_aggre(role) as wo
from
roles
group by emp
这会起作用。
我正在使用 MonetDb 进行分析,它使用 SQL Server 2008 进行查询处理。
我有一个 table ROLES,其中包含以下数据。
Emp ROLE
1 ROLE_1
1 ROLE_2
1 ROLE_3
2 ROLE_1
2 ROLE_2
3 ROLE_3
3 ROLE_4
我想要输出为
EMP ROLE
1 ROLE_1, ROLE_2, ROLE_3
2 ROLE_1, ROLE_2
3 ROLE_3, ROLE_4
我试过 group_concat,但它说
no such aggregate 'group_concat'
我试过的查询如下
select
emp,
group_concat(role) as wo
from
roles
group by emp
group_concat
还有其他选择吗?
编辑:
请阅读评论,我正在使用不支持 group_concat 和 xml 的 monetdb。
Monetdb 集成了 R。你可以写一个R函数。
R函数:
CREATE AGGREGATE str_aggre(val STRING) RETURNS STRING LANGUAGE R {
aggregate(val, by=list(aggr_group), FUN=toString)$x
};
SQL 命令:
select
emp,
str_aggre(role) as wo
from
roles
group by emp
这会起作用。