问题描述
|
好吧,我想通过这种方式来处理我的多个(实际上只有2个)订单。
我有两列\“ valorMensal \”整数和\“ ordem_alternativa \”整数
这是我的查询内容:
ORDER BY valorMensal DESC,ordem_alternativa DESC;
我希望sql首先获取valorMensal,然后按顺序排列,其中\“ valorMensal \”整数更高,直到达到1,因为下一个数字为0,我不希望它得到0,我希望它转到\“ ordem_alternativa \”并在DESC中获取其所有值,然后再次直到其达到0,然后回到\“ valorMensal \”左移0 \,然后转到\“ ordem_alternativa \”,然后得到0 \的左边。
表格示例如下:
id valor勋章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
我怎么做? ^^我希望我很清楚。
解决方法
如果ordem_alternativa的值介于0..N(0到N)之间,则可以执行以下操作。我还没有测试过,但是应该可以工作:
ORDER BY
CASE
WHEN valorMensal = 0 THEN (N - ordem_alternativa)
ELSE valorMensal
END DESC
另外,您还应该使用\“ SQL \”标记标记该问题。