对查询的结果进行排序,会用到 order by 子句。
语法:
SELECT
<字段>
FROM
<表名>
WHERE
<筛选条件>
ORDER BY
<排序条件>;
asc:按升序排列(默认 )。
desc:按降序排序。
执行顺序:
from —-> where —-> select —-> order by
因为 order by 子句 在 select 子句之后执行,所以可以使用 select 子句中字段的别名来作为排序字段。
单个字段排序
如:
# 查询部门编号 >= 90 的员工信息,按入职时间的先后进行排序。
SELECT
*
FROM
employees
WHERE
department_id >= 90
ORDER BY
hiredate DESC;
# 查询员工的信息和年薪,按年薪排序(顺序)。
SELECT
*,
salary * 12 * (
1+IFNULL ( commission_pct, 0 )) AS 'totalSalary'
FROM
employees
ORDER BY
totalSalary;
# 按员工的长度显示员工的姓名和工资。
SELECT
LENGTH( last_name ),
last_name,
salary
FROM
employees
ORDER BY
多个字段排序
有时单个字段排序不能满足需求,可以使用多个字段排序,各个字段之间用 ,
隔开。
如:
# 查询员工信息,要求先按工资排序(升序),再按员工编号排序(降序)。
SELECT
*
FROM
employees
ORDER BY
salary ASC,
employee_id DESC;