我注意到我們的產品代碼中的一些東西,它真的把我拋棄了。我們有一個數據表,其中包含有人與我們聯繫的一年。可以說它可以追溯到90年代末。SQL MAX集合VS.手動計算
我們有一個查詢計算上一年在同一個查詢中的其他未來計算中使用。它看起來像這樣:
@CurrYear = 2016
select @PrevYear = max(Year)
from x
where x.Year < @CurrYear
這似乎是一個很令人費解的方式......不知道爲什麼這個人沒有做:
@PrevYear = @CurrYear - 1
我問這更多的查詢性能的角度來看。哪個更快?爲什麼要這麼多代碼來計算上一年?
您可以快速找出哪一個更快運行。 – dfundako
作者確實沒有使用「@PrevYear = @CurrYear - 1」,因爲作者認爲 - 正確或不正確 - 臨時t幾年可能會失蹤。 –
該查詢正在拉動有數據*的上一年*。當然,你可以從當前年份中減去1,但是我認爲其意圖是將前一年的數據附加到它上面。沒有看到數據,這就是我所能說的。 '哪個更快?' - 減1'哪一個是正確的?' - 我不知道,取決於它被用於什麼。 – Siyual