作者:java_wxid 回退至Mysql数据库理论与实战 #进阶3:排序查询 语法: select 查询列表——————③ from 表名——————① where 条件——————② order by 排序列表 asc|desc;——————④ 特点: 1、 asc代表的是升序。升序是默认行为 desc代表的是降序。 2、排序列表支持单个字段、表达式、函数、别名,也支持以上的组合 3、order by子句一般放在查询语句的最后!
#1、通过单个字段进行简单的排序 #案例;按工资降序 SELECT * FROM employees ORDER BY salary DESC; #2、通过表达式进行排序 #案例:查询员工编号>110的姓名、编号、年薪,并且按年薪升序 SELECT last_name,employee_id,salary12(1 IFNULL(commission_pct,0)) FROM employees WHERE employee_id>110 ORDER BY salary12(1 IFNULL(commission_pct,0)); #3、通过别名进行排序 #案例:查询员工编号>110的姓名、编号、年薪,并且按年薪降序 SELECT last_name,employee_id,salary12(1 IFNULL(commission_pct,0)) 年薪 FROM employees WHERE employee_id>110 ORDER BY 年薪 DESC; #4、通过函数的结果进行排序 #案例:按姓名的长度进行升序 SELECT LENGTH(last_name) len,last_name FROM employees ORDER BY len; #5、支持按多个字段或多个表达式排序 #案例:先按姓名的长度进行升序,然后再按姓名的字符进行降序 SELECT LENGTH(last_name) len,last_name FROM employees ORDER BY len,last_name DESC; #1. 查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序 SELECT last_name,department_id,salary12(1 IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY 年薪 DESC,last_name ASC; #2. 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序 SELECT last_name,salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC; #3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120684244