SQL按列排序,0表示异常

时间:2012-08-07 10:04:33

标签: android sql sqlite

我有专栏:

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

2 个答案:

答案 0 :(得分:4)

试试这个:

select * from CATS 
order by case when cat='none' then 0 else 1 end ,Val desc

答案 1 :(得分: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

应该这样做。