分组合并字符串

编辑
  • 文档创建者:axing
  • 浏览次数:3934次
  • 编辑次数:4次
  • 最近更新:Kevin-s 于 2019-06-17
  • 1. 描述

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

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



    2. 解决方案

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


    3. 示例

    3.1 通过设计器实现

    1)数据集

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

    2)模板设置

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

    3)单元格属性

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


    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 函数来修改字符之间的拼接符,SQL Server 和 MySQL 可以直接在函数里指定相应的拼接符。

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


    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

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

    此页面有帮助吗?只是浏览 [ 去社区提问 ]