在给定的开始月份分拣12个月(1-12)

时间:2015-10-05 11:35:42

标签: sql sql-server algorithm sorting

我有一个问题,就是找到一个算法来按月从任何给定值开始对表进行排序。

例如这个表:

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

实现这个目标,那么

会很好

谢谢!

1 个答案:

答案 0 :(得分:6)

您可以使用模数运算符执行此操作:

order by (month + 12 - 5) % 12

或使用case

order by (case when month > 5 then 1 else 2 end),
         month