MYSQL 第三课 排序查询
语法 select 查询列表3
from 表1
where 筛选条件2
order by 排序列表 asc desc 4
asc代表的是升序,desc代表的是降序,如果不写,默认是升序
order by 子句中可以支持多个字段 单个字段 表达式 函数 别名
order by 一般放在查询语句的最后面 limit 子句除外
#案例 查询员工信息,要求工资从高到低排序
SELECT * FROM employees ORDER BY salary DESC;# 从高到低
SELECT * FROM employees ORDER BY salary;
案例2 查询部门编号>=90的员工信息,按入职时间的先后进行排序
SELECT * FROM employees WHERE `department_id`>=90 ORDER BY hiredate ASC;
案例3 按年薪的高低显示员工的信息和年薪 按表达式排序
SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪 FROM employees ORDER BY `salary`*12*(1+IFNULL(`commission_pct`,0)) DESC;
案例4 按年薪的高低显示员工信息和年薪 按别名排序
SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪 FROM employees ORDER BY 年薪 DESC;
案例5 按姓名的长度显示员工的姓名和工资
SELECT `last_name`,`salary` FROM employees ORDER BY LENGTH(`last_name`) DESC;
案例6 查询员工信息 要求先按工资升序 再按员工编号降序 (按多个字段排序)
SELECT * FROM employees ORDER BY `salary` aSC,`employee_id`desc;
案例7 选择工资不在8000到17000的员工的姓名和工资 按工资降序
SELECT `last_name`,`salary` FROM employees where `salary` not between 8000 and 17000 ORDER BY `salary` DESC;
案例8 查询邮箱中包含e的员工信息 并先按邮箱的字节数降序 再按部门号升序
SELECT * FROM employees WHERE email LIKE '%e%' ORDER BY LENGTH(`email`) DESC,`department_id`ASC;

浙公网安备 33010602011771号