是否可以在sqlite中基于value-group按列排序?

时间:2016-02-05 13:51:24

标签: sql 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

有没有办法以预期的方式排序,而不添加将类似状态映射到某个值的列?

1 个答案:

答案 0 :(得分:4)

您可以使用case声明:

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

如果您有参考表,那么您也可以加入参考表以获取信息。