排序查询
一、语法: 执行顺序
Select 查询列表 ③
from 表 ①
【where 筛选条件】 ②
order by 排序列表(字段/表达式/函数/别名 )【asc/desc】 ④
PS:【】中的内容表示的是可选的;
序号① ② ③ ④表示执行顺序.
二、特点:
1.desc 代表降序,asc 代表升序;如果不写,默认是升序
2.order by子句中可以支持单个字段、多个字段、表达式、函数、别名
3.order by子句一般是放在查询语句的最后面,limit子句除外
下面是一些具体的案例演示:
1. asc升序
将所有number按照cust_num进行升序排列
2. desc降序
将所有id按照cust_id进行降序排列
注:
DESC 降序排列,ASC 升序排列,默认情况下,它是按升序排列。
order by 后面可以跟多个不同的排序字段。
如果结果中含有NULL 值,默认情况下他们总是出现在查询结果的开头。
3. 添加筛选条件
查询部门编号>=100的manager_id,department_id,salary,hiredate信息,
按入职时间的先后进行排序
4. 按别名排序
按年薪package的高低显示员工的信息和年薪
这里为字段 salary *12 *(1+ifnull (commission_pct) ,0) 起别名为 package(年薪)
5. 按表达式排序
按年薪由高到低显示员工的信息和年薪
也可以用表达式来进行排序查询
6. 按函数排序
按姓名的长度显示员工的姓名和工资
mysql中 length 是计算字段的长度,一个汉字是算三个字符,一个数字或字母算一个字符
7. 按多个字段排序
查询employee_id,salary,first_name,先按工资升序,再按员工编号降序