查询结果需要按业务要求进行逆序排序
排序字段是一个可为空的Date型字段
我直接 ORDER BY 字段名 DESC 之后
排序字段为空的全部跑到前面
而我要的结果确是该字段非空的记录逆序排序显示在该字段为空的记录之前
请大虾们帮个小忙
谢谢

解决方案 »

  1.   

    with temp as(
    select 'a' a from dual
    union all
    select 'b' a from dual
    union all
    select 'c' a from dual
    union all
    select 'd' a from dual
    union all
    select null a from dual
    union all
    select null a from dual
    union all
    select null a from dual
    )
    select a from temp order by nvl(a,-1) desc
      

  2.   

    order by ... desc nulls last
      

  3.   

    ORDER BY 字段名 DESC  null last
      

  4.   

    order by columname desc nulls last
      

  5.   

    ORDER BY 字段名 DESC nulls last
    SQL> select comm from emp order by comm desc nulls last;      COMM
    ----------
          1400
           500
           300
             0已选择14行。
      

  6.   

    order by column_name desc nulls last
      

  7.   

    order by xxx desc nulls last  或  order by decode(xxx,null,0,1) desc