情况是这样:
现在有张表,有两个代表时间的字段:  TIME1  和 TIME2我想根据TIME1 和 TIME2 来取得指定范围的内容, TIME1一定有值,当TIME2有内容时,则按照TIME2来判断。 最后我想要按照时间倒叙排列。但是我获取的并没有按照我预料的来,例如:ID VALUE     TIME1              TIME21   XXX    2011-02-11            null2   XXX    2011-02-10            null3   XXX    2010-10-11          2011-02-12
实际上我想要的顺序是:ID VALUE     TIME1              TIME23   XXX    2010-10-11          2011-02-121   XXX    2011-02-11            null2   XXX    2011-02-10            null也就是说,当TIME2有内容时,以TIME2为准。不知道我描述的够清楚不,希望大家帮忙 ,先谢谢啦

解决方案 »

  1.   

    select *
    from tb
    order by (case when time2 is null then 2 else 1 end),TIME2,TIME1
      

  2.   

    感谢楼上的朋友,刚才我试了一下,但是效果不是我想要的那样,如上的语句可以独立的按照TIME1,和TIME2 排序,但是没有做到当成一列去排序。。可能是我的意思没表达清楚,我写个伪代码表达一下:Result set;
    for(POS = 0; POS < set.size(); POS)
    {
       TIME1 = set[POS].get(1);
       TIME2 = set[POS].get(2);
       
       //如果TIME2存在,则把TIME2当做主要时间
       if(TIME2 <> null)
       {
          set{POS].set(1);
       }   
    }SORT(set);希望如上的代码可以直接用Sql语句来实现,麻烦大家再帮帮忙,各位费心啦~
      

  3.   

    select *
    from tb
    order by IFNULL(TIME2,TIME1)
      

  4.   

    SELECT * FROM t ORDER BY time2 desc,time1 desc;
      

  5.   

    select *
    from 现在有张表
    order by IFNULL(TIME1,TIME2) desc