日期:2014-05-17  浏览次数:20619 次

求语句,SQL排序问题
给table A里的数据排序,排序方式为:当字段B = b1时,按照 字段C asc,字段D asc排序,当字段B= b2时,按照 字段C desc,字段D desc排序,SQL语句应该怎么写?求助~~~
sql

------解决方案--------------------
上面B的排序不对,修正:

select *
from A
order by B ,case when B = 0 then C else 1 end,case when B = 0 then D else 1 end,
case when B = 1 then C else 0 end desc,case when B = 1 then D else 0 end desc

drop table A

/*
id  B C D
-------------------------
1 0 1 2
2 0 1 3
7 0 1 4
6 0 2 1
5 1 4 4
3 1 3 6
4 1 3 5

*/