表A
--------------------------
id      name      cd
1       m         10
1       m         11
1       m         12
1       m         13
1       m         14
1       m         15
---------------------------select * 
from A
where cd in ('14','13','10','15')大概这个sql, 有没有办法按照('14','13','10','15')这个param的顺序排序取得????

解决方案 »

  1.   

    我认为没有  你其他的字段全都是一样的  只有一个字段不一样  要么是desc 要么是aesc
      

  2.   

    在后面加个order by cd 
      

  3.   

    select * 
    from A 
    where cd in ('14','13','10','15') 
    order by case cd when '14' then 5 when '13' then 4 when '10 then 3 when '15' then 2 end
      

  4.   


    '10 少了个符号 '10'select * 
    from A 
    where cd in ('14','13','10','15') 
    order by case cd when '14' then 5 when '13' then 4 when '10' then 3 when '15' then 2 end
      

  5.   

    就是4楼那样,不过是sqlserver的写法,
    思路就是这样了
      

  6.   

    用case  when   then        排序       是常用到滴(老师教di)可我忘记了。。
      

  7.   

    使用union 实现:
    select * from A where cd ='14' union all
    select * from A where cd ='13' union all
    select * from A where cd ='10' union all
    select * from A where cd ='15'