SQL订单按年份顺序排列

时间:2015-12-31 11:39:40

标签: sql sql-server

我有一个SQL视图,它在特定日期范围内生成以下星期一列表,如下所示:

Date        Number
16/12/2013  208
23/12/2013  190
30/12/2013  187
15/12/2014  203
22/12/2014  190
29/12/2014  153
14/12/2015  225
21/12/2015  217
28/12/2015  223

是否有可能在每年的第一天,然后是第二个,然后是第三个等订购它们,以便给我如下所示的结果:

Date        Number
16/12/2013  208
15/12/2014  203
14/12/2015  225
23/12/2013  190
22/12/2014  190
21/12/2015  217
30/12/2013  187
29/12/2014  153
28/12/2015  223

提前感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:2)

我认为你应该能够通过在年份的分区上使用row_number()来获得你想要的东西,例如:

Select [Date], [Number], 
       Row_Number() over (PARTITION BY Year([DATE] order by [DATE]) as WEEK_IN_YR
  from [table]
order by WEEK_IN_YR, [Date]

https://msdn.microsoft.com/en-gb/library/ms186734.aspx