学生信息表
在SQL中,一样平常须要用到排序,例如将上表的数据按照年事或身高升序进行排序,即全局排序;或将年事相同的记录按照降序排序,即局部排序。
全局排序通过ORDER BY和ASC、DESC就可以实现了。其语法如下

SELECT 列名FROM 表名 ORDER BY 列名 ASC;
ASC表示升序,DESC表示降序。例如对所有数据按照年事进行升序排序,SQL语句如下
SELECT FROM [学生信息表$] ORDER BY 年事 ASC;
实行结果如下
如果须要按多列进行排序呢? 比如按身高进行全局升序排序,如果身高相同就按年事进行降序,SQL语句如下
SELECT FROM [学生信息表$] ORDER BY 身高 ASC, 年事 DESC;
这样实行结果如下
如果列数更多,以此类推。
二. 局部排序有时候,我们须要将数据按某列进行分组,然后每一个分组内部按照某个字段进行排序。
由于在Excel的SQL中貌似不支持RANK() OVER(PARTITION BY 性别 ORDER BY 身高 DESC)这样的操作,但通过ORDER BY 列名1 ASC, 列名2 DESC这样的语句同样可以达到目的。例如将相同性别的学生进行分组,每个组内按身高进行降序排序,SQL语句可以这样写
SELECT FROM [学生信息表$] ORDER BY 性别 ASC, 身高 DESC;
由于先按性别排序就完成了分组,然后再按身高降序排序便是须要的结果。实行结果如下
学会上面的排序方法,在Excel中基本上能知足所有排序的需求了。