一个X表中,有id,A,date三个字段其中A字段不是每条记录都有信息按照下面条件进行选择,用一条sql语句1选择所有记录
2将A为非NULL的记录按照A的升序排在前面
3将A为NULL的记录按照date降序排列,跟在之前的排序后面。

解决方案 »

  1.   

    select * from x order by case when a is not null then a else 1 end,case when a is null then date else 0 end 
      

  2.   

    select * from X  order by (case when A not IS NULL  then  A else date)
      

  3.   

    select * from table1  order by case when a is not null then 1 else 2 end asc,a asc,date desc
      

  4.   


    else 1和else 0是什么意思?
      

  5.   


    when 。。條件 成立 then 顯示 else --不成 立顯示  end
      

  6.   

    1和0有什么区别呢?不好意思哈,我初学sql不久,case很少用,麻烦您了。
      

  7.   

    select * from X order by (case when A is not null then A end),(case when A is null then date end) desc