首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎样对用select .where id in (33,22,44)的结果排序?该如何处理

2012-04-11 
怎样对用select ...where id in (33,22,44)的结果排序?上面的结果是按22,33,44的顺序,要求按33,22,44的顺

怎样对用select ...where id in (33,22,44)的结果排序?
上面的结果是按22,33,44的顺序,要求按   33,22,44的顺序排列,请教该怎么做?

[解决办法]
select * from tablname
order by charindex(id, '33,22,44 ')
[解决办法]
---这样
select ...
where id in (33,22,44)
order by case id when 33 then 0 when 22 then 1 when 44 then 2 end
[解决办法]
如何让ORDER BY按指定的顺序排序

表a里有个列叫Type,是商品类别,就3种情况:S,A,B,如下:
id name type
1 一班 S
2 五班 A
3 三班 B
4 四班 B
5 二班 A
6 六班 S
现在我需要按照‘S’,‘A’,‘B’的顺序排序,如下:
1 一班 S
6 六班 S
5 二班 A
2 五班 A
3 三班 B
4 四班 B

SELECT *
FROM tbl_test
ORDER BY "@#$$%#$%@$@#$@$@#@$这里应该咋写? "

select * from a where type= 'S ' union all
select * from a where type= 'A ' union all
select * from a where type= 'B '
select id , name ,type
from a
order by case type when 'S ' then 1
when 'A ' then 2 when 'B ' then 3 else 4 end (如果对ID排序,则加最后加,id)
select id , name ,type
from (select *, case type when 'S ' then 1 when 'A ' then 2 else 3 end as seq from a) X
order by seq
上诉对ID列没有进行排序,如果在上诉基础上对ID再进行排序。
select id , name ,type(假设有列id ,name, type)
from (select *, case type when 'S ' then 1 when 'A ' then 2 else 3 end as seq from a) X
order by seq,id
1 一班 S
6 六班 S
2 五班 A
5 二班 A
3 三班 B
4 四班 B

热点排行