表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的顺序排序取得????
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
'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
就是4楼那样,不过是sqlserver的写法, 思路就是这样了
用case when then 排序 是常用到滴(老师教di)可我忘记了。。
使用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'
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
'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
思路就是这样了
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'