1

我有专栏:

CAT  | Val
------------
none | 0
high | 5
low  | 100
med  | 50

如您所见,数字越低,类别越高。(逆逻辑)除了 0..

所以我想订购,以便我得到正确的类别顺序。(无、低、中、高)。

我希望它们按顺序排列:

CAT  | Val
------------
none | 0
low  | 100
med  | 50
high | 5

我试过这个,但它工会,然后命令。每个选择周围的括号会导致错误。

SELECT cat,  an_int FROM CATS WHERE an_int = 0
UNION
SELECT cat, an_int FROM CATS WHERE an_int <> 0 ORDER BY an_int DESC

这给出了:

CAT  | Val
------------
low  | 100
med  | 50
high | 5
none | 0
4

2 回答 2

4

试试这个:

select * from CATS 
order by case when cat='none' then 0 else 1 end ,Val desc
于 2012-08-07T10:17:35.887 回答
1

使用另一个元素按如下方式排序:

SELECT codepro,  nr_cpl, 1 as c FROM reservoirs WHERE nr_cpl = 0 
UNION
SELECT codepro,  nr_cpl, 2 as c FROM reservoirs WHERE nr_cpl <> 0
          order by c asc, nr_cpl desc

它应该可以解决问题。

于 2012-08-07T10:15:04.960 回答