序号 说明 操作
1 排序数据 ORDER BY
2 按多个列排序 ,分隔
3 指定排序方向 降序:DESC 或 升序(默认):ASC
4 ORDER BY结合LIMIT 顺序:FROMORDER BYLIMIT

以下为数据库SQLTEST中的三张表,其结构和内容如下:

1.排序数据

ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

mysql> SELECT Stu_id, Lesson_id-> FROM t_score-> ORDER BY Lesson_id;
+--------+-----------+
| Stu_id | Lesson_id |
+--------+-----------+
|      1 | L001      |
|      2 | L001      |
|      1 | L002      |
|      3 | L003      |
|      2 | L004      |
|      4 | L005      |
+--------+-----------+

通过非选择列进行排序是完全合法的。

mysql> SELECT Stu_id,Score-> FROM t_score-> ORDER BY Lesson_id;
+--------+-------+
| Stu_id | Score |
+--------+-------+
|      1 |    90 |
|      2 |    84 |
|      1 |    86 |
|      3 |    85 |
|      2 |    75 |
|      4 |    98 |
+--------+-------+

2.按多个列排序

只要指定列名,列名之间用逗号分开即可;
多个列排序时,排序完全按照所规定的的顺序进行。仅在多个行具有相同的Lesson_id值时才对分数按Score进行排序;如果Lesson_id列中所有的值是唯一的,则不会按Score排序。

mysql> SELECT Stu_id,Lesson_id,Score-> FROM t_score-> ORDER BY Lesson_id,Score;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
|      2 | L001      |    84 |
|      1 | L001      |    90 |
|      1 | L002      |    86 |
|      3 | L003      |    85 |
|      2 | L004      |    75 |
|      4 | L005      |    98 |
+--------+-----------+-------+

3.指定排序方向

数据排序不限于升序排序(从A到Z),这只是默认的排序顺序。还可以使用ORDER BY子句以降序(从Z到A)顺序排序;
为了进行降序排序,必须指定DESC关键字。

mysql> SELECT Stu_id,Lesson_id,Score-> FROM t_score-> ORDER BY Score DESC;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
|      4 | L005      |    98 |
|      1 | L001      |    90 |
|      1 | L002      |    86 |
|      3 | L003      |    85 |
|      2 | L001      |    84 |
|      2 | L004      |    75 |
+--------+-----------+-------+

对多个列进行降序排序:如果想在多个列上进行降序排序,必须对每个列指定DESC关键字;
依据Lesson_id值进行降序,再依据Score值进行默认(升序)排序。

mysql> SELECT Stu_id,Lesson_id,Score-> FROM t_score-> ORDER BY Lesson_id DESC,Score;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
|      4 | L005      |    98 |
|      2 | L004      |    75 |
|      3 | L003      |    85 |
|      1 | L002      |    86 |
|      2 | L001      |    84 |
|      1 | L001      |    90 |
+--------+-----------+-------+

4.ORDER BY结合LIMIT

ORDER BY子句的位置:FROM—ORDER BY—LIMIT;
找出成绩最高的学生。

mysql> SELECT Stu_id,Lesson_id,Score-> FROM t_score-> ORDER BY Score DESC-> LIMIT 1;
+--------+-----------+-------+
| Stu_id | Lesson_id | Score |
+--------+-----------+-------+
|      4 | L005      |    98 |
+--------+-----------+-------+

2/7 SELECT语句:排序(ORDER BY)相关推荐

  1. MySQL使用SELECT 语句不加ORDER BY默认是如何排序的?

    大家好,我是阿飞云 怕什么真理无穷,进一步有近一步的欢喜 记录一个MySQL查询排序的问题,一个SQL语句没有加order by,那么查询出来的结果到底是按照什么规则排序的呢?查询了网上的一些资料,分 ...

  2. MySQL也有潜规则 – Select 语句不加 Order By 如何排序?

    今天遇到一个问题,有一个 Select 语句没有加 "Order By",返回的数据是不确定的. 这种问题碰到不止几次了.追根寻底, Select 语句如果不加 "Ord ...

  3. mysql 两个select结果_MySQL UNION连接两个以上的SELECT语句的结果组合到一个结果集合...

    在MySQL中,UNION 操作符用于把来自多个 SELECT 语句的结果组合到一个结果集合中. 语法格式:SELECT ... UNION [ALL | DISTINCT] SELECT ... [ ...

  4. Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例

    Oracle数据库:排序order by语句,select from where order by的执行先后顺序,各种样例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多 ...

  5. 【4 - 分组】Sql Server - 郝斌(分组group by、过滤having、聚合函数max() / count()、排序order by、select语句的执行顺序)

    课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili ​ 目录 group by(分组) group by a,b 的用法 having( ...

  6. MySQL数据库select语句6大子句(from、where、group by、having、order by 、limit )#经典员工、部门表案例语句练手!

       MySQL中的select语句,有说5大子句,有说6大子句的,两者都没有问题,只不过把from接表名算上一个子句,where是条件查询,group by是分组查询,having是筛选,order ...

  7. MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询

    第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...

  8. mysql怎么排序检索_MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)...

    .空格被忽略,可以用一或多个空格分开指令. 检索单个列: SELECT 列名  FROM 表名: 检索多个列: 当心逗号 SELECT 列1,列2,列3  FROM 表: 检索所有列:(*)通配符 S ...

  9. pivot 用order by 语句排序时,老是超时的解决办法,超Easy

    pivot是用来把某列字段转成行字段,可能我描述不太清楚,这个用过的都知道的啦,所以我也不费口水了,切入正题. 我之前用pivot建了个视图View1,然后我有一个sql语句,如下(一直都运行得好好的 ...

  10. 学习 SQL 语句 - Select(4): 排序

    Order By Asc|Desc 本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classe ...

最新文章

  1. ubuntu lamp配置多域名服务器
  2. Linux 查看Pyhont的解释器大小
  3. “CSDN 2021年度IT技术影响力之星评选”正式开启报名!
  4. python入坑指南_Rust入坑指南:万物初始
  5. python—高阶函数
  6. 2019最新python面试题详解(应届生)
  7. 华为云开天aPaaS 上线,服务千万开发者,使能行业场景化创新
  8. iconfont阿里矢量图标库的引入与使用
  9. 3mx转osgb_如何将无人机Las点云数据转为Osgb数据
  10. python安装numpy库出错_numpy安装失败-小失误
  11. Lattice Diamond 学习总结---“疑难杂症”杂篇
  12. 飞鸽传书 linux,飞鸽传书Linux版
  13. 如何获得哔哩哔哩上下载的教学视频在电脑上看?(bilibili音频视频分离)
  14. java 某字段重复的数据库,excel表格两个字段去重复的数据库【用JAVA程序向SQL数据库导入Excel表,判断出SQL表中已存在的重复数据,并跳过重复的继续导入其他记录.】...
  15. 如何成为一个精力充沛的程序员——掌控
  16. 《博客女王干群皇太后名人世界》中国最著名博客女王干群原创作品编号2012100706
  17. 微信小程序开发|宿主环境详解
  18. 从李兴平到翔子 “草根站长”的简单化生存规则!
  19. ORACLE EBS常用表及查询语句(二)
  20. JDP-[单例模式]-思路梳理

热门文章

  1. mysql链路跟踪工具_SkyWalking全链路追踪利器
  2. 计算机安全性无效无法连接到网络,图文研习windows10系统连接网络提示无法连接到此网络错误的方法?...
  3. Oracle里PO自动售货如何做,Oracle R12采办接收流程(PR-PO-RCV-AP-Payment)
  4. java VM argument_java vm args
  5. 随机数是真是假你说了算???
  6. 比较两个日期大小和获取当前月最大天数的存储过程
  7. python oop 继承_oop-在Python中继承方法的文档字符串
  8. 禁止和恢复WIN7驱动强制签名
  9. java中常用的几种排序算法--常见笔试面试
  10. 特征分解与奇异值分解