Sql-Server
從視窗函式中的“中間”開始排序
我所擁有的是這樣的表格,我需要在其中對接下來幾個月的值列進行匯總。問題是我想從第 4 個月開始(如第 3 列所示)並一直走下去。
起作用的是分別創建一個具有所需排序的新列並使用它來排序,如下所示:
IIF(IR.[End Month Index] - ID.[Latest Month Index] - 1 < 0, IR.[End Month Index] - ID.[Latest Month Index] + 12 , IR.[End Month Index] - ID.[Latest Month Index]) AS [Upcoming Month IDX]
但這非常難看,因為我必須對最大元素的數量(12)進行硬編碼,而且感覺不是一個合適的解決方案。有沒有更優雅的方法來解決這個問題?
我不會擔心硬編碼一年中的月數
create table #t (mm int) insert #t (mm) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12) select mm, (mm + 8) % 12 from #t order by 2 asc