1. 概述编辑
数据集中的排序是指通过 SQL 直接在数据库查询时排序。此方法性能最佳,但所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护,另外有些计算是无法用 SQL 完成的。因此建议仅使用 SQL 实现一些简单的,单一的「升序」或「降序」。
本文介绍在定义数据集时使用 SQL 语句设置排序,使报表能按照某列的数据进行「升序」或「降序」排列。
2. 示例编辑
2.1 ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。默认按照「升序」进行排序,即 ASC 关键字;如果需要按照「降序」排序,可以使用 DESC 关键字。
例如:
升序:SELECT * FROM 销量 order by 销量
降序:SELECT * FROM 销量 order by 销量 desc
2.2 升序
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 销量
点击预览,即可看到数据按「销量」列升序排序,如下图所示:
2.3 降序
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 销量 desc
点击预览,即可看到数据按「销量」列降序排序,如下图所示:
2.4 多列排序
新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 英文简称,销量
点击预览,即可看到数据先按「英文简称」列升序排序,「销量」列再按对应的「英文简称」升序排序,如下图所示:
3. 注意事项编辑
3.1 MySQL 中文排序无效
如果 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