1.数据库来源:Mysql 基础教程
2.数据库说明:
本文使用的数据库名称为 myemployees,其中有 8 张表,分别为 customers 表,departments 表,employees 表,job_grades 表,jobs 表,locations 表,orders 表,salespeople 表。
一、排序查询基本语法
select 查询列表
from 表名
where 筛选条件
order by 排序的字段或表达式 【asc/desc】
二、排序查询特点
1、asc 代表的是升序,desc 代表的是降序(不写默认是升序)
2、order by 子句可以支持单个字段、别名、表达式、函数、多个字段
3、order by 子句在查询语句的最后面,除了 limit 子句
三、排序查询相关案例(仅展示有限部分)
案例一:查询部门编号 >= 90 的员工信息,并按员工编号降序
select * from employees
where department_id >= 90
order by employee_id desc
案例二:查询员工信息,按年薪降序
select * , salary * 12 * (1 + ifnull(commission_pct, 0)) as year_salary
from employees
order by year_salary desc
案例三:查询员工名及其工资,并按名字长度降序,再按工资升序
select last_name, salary from employees
order by length(last_name) desc, salary asc
案例四:查询工资不在 8000 到 17000 的员工的姓名和工资,按工资降序
select last_name, salary from employees
where salary not between 8000 and 17000
order by salary desc
案例五:查询邮箱中包含 e 的员工信息,并按邮箱字节数降序,再按部门号升序
select * from employees
where email like '%e%'
order by length(email) desc, department_id asc