2015-10-05 102 views
2

我有一個問題,找到一個算法來按任意給定值開始月份列排序表。排序12個月(1-12)與給定的開始月份

例如這個表:

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  | 

基表總是在我的情況下,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 
+0

(month + 12 - 5)%12 =(month - 5)%12 – Polux2

+0

不完全是:如果月份是3,您將得到2 = -2 – Simone

+0

使用'case'的查詢可能需要'.....月份> = 5 ......' – Wanderer