• MySQL 排序


    排序数据

    1.排序规则

    • 使用ORDER BY 字句排序,在其后面加所需字段

      • ASC(ascend): 升序

      • DESC(descend): 降序

    • ORDER BY 字句在SELECT语句的结尾

    注意:

    数据库中默认按照先后添加顺序存储数据,在查询时,也按照添加顺序遍历显示结果.因此当我们需要一些特定的数据排列时就要使用到排序

    2.单列排序

    #练习: 按照salary从高到低顺序对员工进行排序

    1. SELECT employees_id,last_name,salary
    2. FROm employees
    3. ORDER BY salary DESC;

    #练习: 按照salary从高到顺序对员工进行排序

    1. SELECT employees_id,last_name,salary
    2. FROm employees
    3. ORDER BY salary ASC;

    注意:

    如果在ORDER BY 后面没有显示指明排序方式的话,则默认按照升序排列排序

    #练习: 可以使用列的别名进行排序

    1. SELECT employee_id,salary * 12 annual_sal
    2. FROM employees
    3. ORDER BY annual_sal;

    注意:

    • 列的别名只能在ORDER BY 语句之中对字段进行排序,不能在WHERE语句之中对字段进行排序

    #有WHERE 和 ORDER BY 同时出现的地方,一定要把WHERE放在FRON语句后面,ORDER BY 往后放

    1. SELECT employee_id,salary
    2. FROM employees
    3. WHERE department_id IN (50,60,70)
    4. ORDER BY department_id DESC;

    注意:

    • ORDER BY 的查询字段,不一定非得是上面SELECT的查询字段,即即使没有在SELECT语句中查询表中的相应字段,只要是在表中,就可以使用ORDER BY 语句进行排序

    • 原因:

    因为SQL语句并非按照从前的顺序执行,实际执行时先从FROM语句出发,找到表中的数据,再走到WHERE语句进行过滤操作,筛选出所有所需的数据;按照走到SELECT语句,选择出所需查询的字段和字段的别名;接下来再到后面的ORDER BY 语句中对应的字段进行排序,而WHERE 语句在 SELECT 语句之前执行,此时还没有创建字段的别名,因此,在WHERE 语句中使用字段的别名会报错

    例如:

    1. SELECT employee_id,salary
    2. FROM employees
    3. WHERE department_id > 16400; # 此时会报错

    3.多列排序

    #练习: 显示员工信息,按照department_id降序排序,再按照salary的升序排序

    1. SELECT employee_id,salary
    2. FROM employees
    3. ORDER BY department_id DESC,salary ASC;
    • 可以使用不在SELECT列表中的列排序

    • 在对多列进行排序时,首先排序的第一列必须有相同的列值,才会对第二列及另外的列进行排序,如果第一列的数据中所有的值都是唯一的.将不再对第二列及后面的列进行排序

  • 相关阅读:
    flutter中使用缓存
    记录一次K8s pod被杀的排查过程
    【学习笔记】浅谈高斯整数
    零基础入门Vue之画龙点睛——再探监测数据
    【教3妹学算法-每日3题(1)】我的日程安排表 I
    PHP自己的框架2.0版本目录结构和命名空间自动加载类(重构篇一)
    C/C++--跨平台
    【Python】简记操作:Centos安装、卸载、升级Python运行环境
    linux下三种服务开机自启的方式
    python中装饰器的使用教程详解
  • 原文地址:https://blog.csdn.net/weixin_52629592/article/details/124932262