好吧,我想通过这种方式使我的多个(实际上只有2个)订单。
我有两列“valorMensal”整数和“ordem_alternativa”整数
以下是我的疑问:
ORDER BY valorMensal DESC,ordem_alternativa DESC;
我希望SQL首先获取valorMensal并按顺序将“valorMensal”整数设置为高,直到达到1,因为下一个数字为0我不希望它获得0,I希望它转到“ordem_alternativa”并在DESC中获取所有值,直到它达到0然后返回“valorMensal”,得到0的左边然后转到“ordem_alternativa”并得到0的左边。
这里的示例是表:
id valorMensal ordem_alternativa 1 0 6 2 0 5 3 1 2 4 3 1 5 4 1 6 0 0 7 0 0
ResultSet我希望它是这样的:
id 5,4,3,2(因为ordem_alternativa为5),1(因为ordem_alternativa为6),6,7
我该怎么做? ^^我希望我很清楚。
答案 0 :(得分:0)
如果ordem_alternativa的值介于0..N(0到N)之间,你可以这样做。我没有测试它,但它应该工作:
ORDER BY
CASE
WHEN valorMensal = 0 THEN (N - ordem_alternativa)
ELSE valorMensal
END DESC
此外,您应该使用“SQL”标记标记问题。