表结构
id name age time
1 a 18 2010-10-10 12:12:12
2 b 24 2010-10-10 12:12:41
3 c 17 2010-10-10 12:15:12
4 d 21 2010-10-10 12:18:12
5 e 24 2010-10-10 12:21:12
6 f 24 2010-10-10 12:22:12
7 g 31 2010-10-10 12:34:12
查询之后,让 age为24的排在前头,剩下的按时间排序求各位大虾 用sql的select怎么实现

解决方案 »

  1.   

    select *
    from tb
    order by case when age=24 then 0 else 1 end
      

  2.   

    select *
    from (
    select * ,case name when 24 then 0 else 1 end as F_Order
    from table
    ) t order by  F_Order, time
      

  3.   


    select * from [tb]
    order by case when age=24 then 0 else 1 end,time
      

  4.   

    select * from tb order by (case when age = 24 then 1 else 2 end) , time
      

  5.   

    --如下
    select id,name,age,time 
    from tb 
    order by (case when age = 24 then 1 else 2 end) , time
      

  6.   

    select *
    from [表]
    order by case when age=24 then 0 else 1 end,time
      

  7.   

    学习。。,如果table有100万数据,还有这个需求?
      

  8.   

    select *,level=0 from tb where age=24
    union all
    select *,level=1 from tb where age!=24
    order by level,time asc
      

  9.   

    xue xiselect *,level=0 from tb where age=24
    union all
    select *,level=1 from tb where age!=24
    order by level,time asc
      

  10.   

    SELECT * FROM tb 
    ORDER BY(CASE WHEN age = 24 THEN 1 ELSE 0 end) DESC, time
      

  11.   


    我开始也是这么想的,但是看到他们的order by cese when。。我觉得挺好的啊。
      

  12.   


    select id,name,age,time 
    from tb 
    order by (case when age = 24 then 1 else 2 end) , time