本文共 1198 字,大约阅读时间需要 3 分钟。
语法:
select 查询列表from 表名【where 筛选条件】order by 排序的字段或表达式;
特点:
asc代表的是升序,可以省略
desc代表的是降序order by子句可以支持 单个字段、别名、表达式、函数、多个字段
order by子句在查询语句的最后面,除了limit子句
示例
#1、按单个字段排序SELECT * FROM employees ORDER BY salary DESC;#2、添加筛选条件再排序#案例:查询部门编号>=90的员工信息,并按员工编号降序SELECT *FROM employeesWHERE department_id>=90ORDER BY employee_id DESC;#3、按表达式排序#案例:查询员工信息 按年薪降序SELECT *,salary*12*(1+IFNULL(commission_pct,0))FROM employeesORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;#4、按别名排序#案例:查询员工信息 按年薪升序SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪FROM employeesORDER BY 年薪 ASC;#5、按函数排序#案例:查询员工名,并且按名字的长度降序SELECT LENGTH(last_name),last_name FROM employeesORDER BY LENGTH(last_name) DESC;#6、按多个字段排序#案例:查询员工信息,要求先按工资降序,再按employee_id升序SELECT *FROM employeesORDER BY salary DESC,employee_id ASC;
#1.查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪FROM employeesORDER BY 年薪 DESC,last_name ASC;#2.选择工资不在8000到17000的员工的姓名和工资,按工资降序SELECT last_name,salaryFROM employeesWHERE salary NOT BETWEEN 8000 AND 17000ORDER BY salary DESC;#3.查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序SELECT *,LENGTH(email)FROM employeesWHERE email LIKE '%e%'ORDER BY LENGTH(email) DESC,department_id ASC;
转载地址:http://gqsqb.baihongyu.com/