2016-02-05 56 views
0

想这是我的表是否有可能按列值基于value-group,在sqlite中?

name status 
ab  1 
cd  4 
ef  -2 
mn  3 
pq  -1 
xy  2 

认定中的地位:

1,2  = success 
3,4  = failure 
-1,-2 = error 
订单后

预期结果通过 (按状态顺序根据成功,失败,错误)

ab  1 
xy  2 
cd  4 
mn  3 
ef  -2 
pq  -1 

而简单的状态订单给出了这个

ab  1 
xy  2 
mn  3 
cd  4 
pq  -1 
ef  -2 

有没有一种方法可以按照预期的方式进行排序,而无需添加将某个类似的状态映射到特定值的列?

+0

数据库如何知道整数处于相同状态? – glibdud

+0

您如何订购状态为1和2的两行,两个行都成功,但状态不同,1 <2? –

回答

4

您可以使用case声明:

order by (case when status in (1, 2) then 1 
       when status in (3, 4) then 2 
       else 3 
      end) 

如果你有一个参照表,那么你可以加入到该得到的信息也是如此。

+0

谢谢。这正是我想要的:) – Ankit

相关问题