如何把一张员工表 前三条按工资的降序排列  其余的保持顺序不变

解决方案 »

  1.   

    select * from tb where id<3 order by gongzi desc 
    union all
    select * from tb where id>=3
      

  2.   

    你这个是先判断where 里面的条件 然后再排序  
      

  3.   

    (SELECT * FROM (SELECT * FROM tb WHERE id < (SELECT id FROM tb LIMIT 3,1) ORDER BY gongzi DESC) t) 
    UNION ALL 
    (SELECT * FROM tb WHERE id > (SELECT id FROM tb LIMIT 2,1));
    我测试过,可以的。
      

  4.   

    order by salary desc 
      

  5.   

    (select * from table order by gongzi desc limit 3)
    union
    (select * from table where id <(select id from table order by gongzi desc limit 2,1))
      

  6.   

       这个就是原表,用7楼的方法取到的值有问题 ,和实际表中数据salary从高到底前三位不一样