MySQL基础(39-42)-排序语序order by

39-42.排序语序

asc升序
desc降序

语法:SELECT * FROM 表名 ORDER BY 字段名 ASC/DESC;
案例1:查询员工信息,要求工资从高到低排序

SELECT * FROM `employees` ORDER BY `salary` DESC; //降序

案例2:查询部门编号>=90的员工信息,按入职时间的先后进行排序;

SELECT * FROM `employees` 
WHERE `department_id` >= 90
ORDER BY `hiredate`;

案例3:按年薪的高低显示员工信息和年薪 【按表达式/别名排序】

#【按表达式排序】
SELECT *,`last_name`,`salary`*12*(1+IFNULL(`commission_pct`,0)) AS YearSalary FROM `employees` 
ORDER BY salary*12*(1+IFNULL(`commission_pct`,0));
#【按别名排序】
SELECT *,`last_name`,`salary`*12*(1+IFNULL(`commission_pct`,0)) AS YearSalary FROM `employees` 
ORDER BY YearSalary;

案例4:按姓名的长度显示员工的姓名和工资==【按函数排序】==

SELECT `first_name`,LENGTH(`first_name`) AS 字节长度 FROM `employees`
ORDER BY LENGTH(`first_name`);

SELECT `first_name`,LENGTH(`first_name`) AS 字节长度 FROM `employees`
ORDER BY 字节长度 DESC;

案例5:查询员工信息,要求先按工资排序,再按员工编号排序;【按多个字段排序】

SELECT * FROM `employees` 
ORDER BY `salary` ASC,`employee_id`DESC;

学习点:排序使用order by,并且可以对多个字段进行排序,比如先对成绩进行排序后,再在成绩的基础之上对颜值进行排序,order by可以实现多重排序哈哈哈。
总结:
1.asc升序,desc降序,如果不写默认从低到高排序;
2.order by 子句中可支持 别名、表达式、函数、多个字段一起排序;
3.order by一般是放在查询语句的最后面,limit 语句除外。

练习题:

#1.查询员工的姓名和部门号和年薪,按年薪降序 姓名升序;
SELECT `last_name`,`department_id`,`salary`*12*(1+IFNULL(`commission_pct`,0)) AS 年薪 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的员工信息,并按邮箱的字节数降序,再按部门号升序
SELECT * FROM `employees`
WHERE `email` LIKE '%e%'
ORDER BY LENGTH(`email`) DESC,`department_id`;//多个字段一起排序,先按前一个字段排序后,再排第二个字段;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值