1、现有员工表如下:
emp:empno(员工编号),empname(员工名称)sal(员工薪资)
1)查询员工的名字和薪资,按照员工的薪资倒序,薪资一样时,按照员工名字正序排。
select ename ,sal from emp order by sal desc, ename asc;
总结:越靠近前面的排序字段,起的主导作用越大。只有当前面的字段的值一样的时候,才会启用后面的字段进行排序。
2、排序的字段也可以使用查询字段的顺序来代替:
例如:select ename , sal from student order by sal; 我们可以写成这样
select ename , sal from student order by 2; 但是这种形式不健壮,我们在工作开发中,也尽量不要去这么使用。
3、order by 在sql语句中什么时候执行
selec 第三
字段1,字段2,字段3 ...
from 第一
表名
where 第二
条件
order by 第四
字段1
我们可以看出先执行 from --> where --> select --> order by
我们怎么证明order by是在select 后面执行的?
select ename ,sal * 12 as yealsal from emp order by yealsal;这条语句可以正常执行,说明order by就是在select后面执行的,应为yealsal这个字段是在select里面定义的,只有select执行了yealsal这个字段才存在,才可以使用。所以order by是在select后面执行的。