反馈已提交
网络繁忙
数据集中的排序是指通过 SQL 直接在数据库查询时排序。此方法性能最佳,但所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护,另外有些计算是无法用 SQL 完成的。因此建议仅使用 SQL 实现一些简单的,单一的「升序」或「降序」。
本文将介绍在定义数据集时使用 SQL 语句可以设置的排序类型。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。默认按照「升序」进行排序,即 ASC 关键字;如果需要按照「降序」排序,可以使用 DESC 关键字。
例如:
升序:SELECT * FROM 销量 order by 销量
降序:SELECT * FROM 销量 order by 销量 desc
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 销量
点击预览,即可看到数据按「销量」列升序排序,如下图所示:
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 销量 desc
点击预览,即可看到数据按「销量」列降序排序,如下图所示:
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 英文简称,销量
点击预览,即可看到数据先按「英文简称」列升序排序,「销量」列再按对应的「英文简称」升序排序,如下图所示:
定义一个数据集参数,通过在标题添加「动态参数」实现点击标题动态排序。
新建普通报表,新建数据库查询 ds1,SQL 查询语句为:SELECT * FROM 销量 where 地区='华北' order by 销量 ${a}
定义了一个数据集参数 a,用来表示排序 asc 或 desc 。如下图所示:
注:如果需要两个字段均设置动态参数,SQL 语句可修改为:SELECT * FROM 销量 where 地区='华北' order by 销量 ${a},销售员 ${a}
将数据集中的数据拖入表格,设置 A2 单元格数据设置为「列表」,报表样式如下图所示:
选中「销量」标题所在 E1 单元格,添加一个「超级链接>动态参数」,参数即为在 SQL 中设置的参数 a ,参数值输入公式:if(a="desc","asc","desc")。
注:a 默认为 asc。
1)PC 端
保存报表,点击「分页预览」,效果如下图所示。
2)移动端
App 端和 HTML5 端均支持,效果如下图所示:
已完成模板可参见:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\点击标题动态排序.cpt
点击下载模板:点击标题动态排序.cpt
如果 MySQL 数据库无法实现按中文拼音首字母排序,需要看一下表字段是否使用的是 UTF-8 编码,如果使用的是 UTF-8 编码,则需要使用 MySQL 的 convert 方法转换成 GBK 编码进行排序。且前提是 MySQL 安装了 GBK 字符集,不然会报错。
SQL 语句如下:
升序:SELECT * FROM 销量 order by convert(英文简称 using gbk)
降序:SELECT * FROM 销量 order by convert(英文简称 using gbk) desc
售前咨询电话
400-811-8890转1
在线技术支持
请前往「服务平台」,选择「在线支持」
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭