Sql-Server

從視窗函式中的“中間”開始排序

  • April 14, 2021

在此處輸入圖像描述

我所擁有的是這樣的表格,我需要在其中對接下來幾個月的值列進行匯總。問題是我想從第 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

引用自:https://dba.stackexchange.com/questions/289781