我有一个问题,就是找到一个算法来按月从任何给定值开始对表进行排序。
例如这个表:
month | sales
1 | 621,12
2 | ...
3 | ....
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
假设我已经开始月= 5 - 那么我想得到:
month | sales
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
1 | 621,12
2 | ...
3 | ....
4 |
基表ALWAYS在我的情况下有12条记录(月值总是1-12)。
如果有人知道如何用SQL 实现这个目标,那么会很好
谢谢!
答案 0 :(得分:6)
您可以使用模数运算符执行此操作:
order by (month + 12 - 5) % 12
或使用case
:
order by (case when month > 5 then 1 else 2 end),
month