历史版本8 :数据集中的排序 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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 销量

点击预览,即可看到数据按「销量」列升序排序,如下图所示:

Snag_18c406e.png

2.3 降序

新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 销量 desc

点击预览,即可看到数据按「销量」列降序排序,如下图所示:

Snag_18f0f7c.png

2.4 多列排序

新建普通报表,新建「数据库查询」,输入 SQL 语句为:SELECT * FROM 销量 order by 英文简称,销量

点击预览,即可看到数据先按「英文简称」列升序排序,「销量」列再按对应的「英文简称」升序排序,如下图所示:

Snag_1956aae.png

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