1

我有一个表 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

这可能吗?谢谢你的帮助。

4

2 回答 2

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
于 2012-05-02T16:33:04.497 回答
0
SELECT ColA,ColB
FROM table
ORDER BY 
 ColA, (CASE WHEN ColA = 1 THEN -1 * ColB ELSE ColB END)
于 2012-05-02T16:33:41.157 回答