数据库里面有很多条记录,我要把状态是“是”的放在最上面,状态是“是”的这些同时也要按时间排序,下面的是状态是“否”的,是否的状态也要按时间在排序。
表明 NEW_CMD_DETILE ,状态的列名字是flag,时间的列名是time

解决方案 »

  1.   

    order by flag desc,time asc
      

  2.   

    select * from NEW_CMD_DETILE  order by (case when flag = '是' then 1 else 2 end) , time desc
      

  3.   

    select * from NEW_CMD_DETILE  order by flag,time;
      

  4.   


    SQL> select ascii('是') from dual;ASCII('是')
    -----------
          51911SQL> select ascii('否') from dual;ASCII('否')
    -----------
          47089
    --否 的ascii码比 是 小 所以用desc
    select * from NEW_CMD_DETILE order by flag desc,time 
      

  5.   


    SELECT flag,TIME FROM  (
        SELECT flag,TIME,Decode(flag,'是',0,1) rn FROM NEW_CMD_DETILE
    )
    ORDER BY rn asc,time desc
      

  6.   


    select * from NEW_CMD_DETILE order by decode(flag,'是',1,2),time;
      

  7.   

    order by decode(flag,'是',0,1),time