sql 教程系列 二、检索结果排序

排序我们需要用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

你可能感兴趣的:(sql,null)