假设现在有一张article表,表示主题,它有id字段,time字段表示发表时间,lastMessageTime字段表示最后
回复该主题的帖子的时间,现在我要根据time和lastMessageTime两个字段的所有时间进行倒序排序,从而拿出
排序后的主题,请问怎么写sql语句。

解决方案 »

  1.   


    --这样就可以了
    select * from article order by time desc,lastMessageTime desc;
      

  2.   

    我觉得这样不合题意,你这样拿出的数据必然是先由time的倒序决定数据的获取,
    就算这条语句的lastMessageTime和time调转也是不合题意的。time和lastMessageTime
    是两个不同的字段,我就想知道有没有纯sql的方法将两个字段的所有数据集中为
    一组数据排序
      

  3.   

    也就是time和lastMessageTime里面最近的排最前面,对吧。select * from article
    order by (case when time>lastMessageTime then time else lastMessageTime end) desc;
      

  4.   

    应该是你这种做法了,没测试,逻辑应该是正确的,看来还是要用到pl_sql,
    而且那个case关键字没有接触过,pl_sql压根就没在程序中用过,比较菜,
    完成上面的功能我在article表中加多了个排序的冗余字段,也能搞定,谢谢你,
    学习了,结贴!