SQL Server 2008中的单行连接行



我正在使用monetdb进行分析,该分析正在使用SQL Server 2008进行查询处理。

我有一个表角色,该角色在下面具有数据。

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,但它说

否这样的汇总'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

这将起作用。

相关内容

  • 没有找到相关文章

最新更新