四:排序查询(order by)
#进阶三:排序查询
/*
语法:
select 查询列表
from 表名
【where 筛选条件】
order by 排序列表
执行顺序
(1)from子句
(2)where子句
(3)select子句
(4)order by子句
举例:
select `last_name`,`salary`
from `employees`
where `salary`>2000
order by `salary`;
特点:
1、排序列表可以是单个字段、多个字段、表达式、函数、列数、以及以上的组合
2、升序,通过 asc ,默认升序
降序,通过 desc
*/
#一、按某个字段排序
#案例1:将员工编号>120的员工信息进行工资的降序
SELECT * FROM `employees` WHERE `employee_id`>120 ORDER BY `salary` DESC;
#案例2:将员工编号>120的员工信息进行工资的升序
SELECT * FROM `employees` WHERE `employee_id`>120 ORDER BY `salary`;
#二、按表达式排序
#案例1:对有奖金的员工,按年薪降序
SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪 FROM `employees` WHERE `commission_pct` IS NOT NULL ORDER BY `salary`*12*(1+IFNULL(`commission_pct`,0)) DESC;
#三、按别名排序
#案例1:对有奖金的员工,按年薪降序
SELECT *,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪 FROM `employees` #WHERE `commission_pct` IS NOT NULL ORDER BY 年薪 DESC;
#四、按函数的结果排序
#实例1:按姓名的字数长度进行升序
SELECT `last_name` FROM `employees` ORDER BY LENGTH(`last_name`);
#五、按多个字段排序
#案例1:查询员工的姓名、工资、部门编号,先按工资升序,再按部门编号降序
SELECT `last_name`,`salary`,`department_id` FROM `employees` ORDER BY `salary`,`department_id` DESC;
#六、按列数排序(字母从a-z)
SELECT * FROM `employees` ORDER BY 2;
本文来自博客园,作者:zhang-X,转载请注明原文链接:https://www.cnblogs.com/YY-zhang/p/15060328.html