我有一个TableA表,看起来像这样:
ColA ColB
0 20
1 10
0 5
1 15
我想对行进行排序,以便首先列出ColA = 0的所有记录,然后这些记录按ColB递增排序。在列出所有ColA = 0的行之后,我想列出ColA = 1的所有行,但这些行按ColB递减排序。
结果应如下所示:
ColA ColB
0 5
0 20
1 15
1 10
这可能吗?谢谢你的帮助。
答案 0 :(得分:1)
select t.ColA, t.ColB
from t
order by t.ColA
,case when t.ColA = 0 then t.ColB end asc
,case when t.ColA = 1 then t.ColB end desc
答案 1 :(得分:0)
SELECT ColA,ColB
FROM table
ORDER BY
ColA, (CASE WHEN ColA = 1 THEN -1 * ColB ELSE ColB END)