排序我们需要用order by 进行空 order by desc为降序 order by asc 为升序,一般默认为升序排序
1、单个字段进行 ,如按照工资进行升序排序
select * from emp order by sal asc 如果是降序 asc换成desc就可以了
2、多个字段进行排序 ,字段之间用逗号相隔就可以了,如,先按照部门编号进行正序排序 再按照工资降序排序
select ename,deptno ,sal from emp order by deptno,sal desc
3、当排序字段遇到null怎么办?如comm奖金可以为null 但是你不希望null干扰你的查询结果?你只需在order by 中加个标记就很容易控制null是排在前面还是后面了(摘自sql cookBook)
select ename ,sal ,comm from(
select ename,sal,comm
case when comm is null then 0
else 1
end as is_null
from emp
) t
order by is_null desc,comm
4根据业务逻辑来排序
如果是销售人员就按照奖金进行排序 其他的情况按照工资进行排序
select ename,job,sal,comm,
case when jpb='saleman' then comm else sal end as ordered
from emp
order by 5