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