java mysql排序_MySQL数据库:第四章:排序查询

作者: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,salary*12*(1+IFNULL(commission_pct,0))

FROM employees

WHERE employee_id>110

ORDER BY salary*12*(1+IFNULL(commission_pct,0));

#3、通过别名进行排序

#案例:查询员工编号>110的姓名、编号、年薪,并且按年薪降序

SELECT last_name,employee_id,salary*12*(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,salary*12*(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 的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT *

FROM employees

WHERE email LIKE '%e%'

ORDER BY LENGTH(email) DESC,department_id ASC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值