分组合并字符串

编辑
文档创建者:axing (73248 )     浏览次数:1075次     编辑次数:2次     最近更新:jiangsr 于 2018-03-20     

目录:

1. 问题描述编辑

在针对数字类型的数据时,我们有分组求和,求最大最小值等操作。

而在处理字符串类型的数据时,有时我们也需要将同分组的数据合并拼接到一起,实现效果如下图:

222

2. 解决方案编辑

利用报表设计器的功能实现或是利用相关数据库的函数来实现。

3. 示例编辑

3.1 通过设计器实现

1)数据集

添加数据集ds1,sql语句为:SELECT * FROM 部门

2)模板设置

将字段拖进相应的单元格中,模板设置如下:

222

3)单元格属性

选择B1单元格,右击选择“扩展”,将B1单元格扩展方向设置为“不扩展”,如下图所示:

222

4)保存预览

保存预览,即可上图所示效果。

3.2 通过sql函数实现

通过设计器设置的方法虽然简单,但在大量数据的前提下,通过sql预先处理好数据会使报表性能得到很大的提高。

下面介绍三大主流数据库各自的处理方法。(数据表结构均与上面的例子一致)

1)Oracle数据库

select 总部门, wmsys.wm_concat(部门名称) as 部门名称 from 部门 group by 总部门

2)sql server数据库

SELECT 总部门, stuff((select ','+部门名称 from 部门 b where a.总部门=b.总部门 for xml path('')),1,1,'') as 部门名称 FROM 部门 a group by a.总部门

3)mysql数据库

select 总部门, group_concat(部门名称) from 部门 group by 总部门

4. 补充说明编辑

设计器和Oracle的方法可以通过replace函数来修改字符之间的拼接符,sqlserver和mysql可以直接在函数里指定相应的拼接符。

其中mysql的group_concat函数完整语法格式为group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?