假设这是我的表
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 :(得分:4)
您可以使用case
声明:
order by (case when status in (1, 2) then 1
when status in (3, 4) then 2
else 3
end)
如果您有参考表,那么您也可以加入参考表以获取信息。