有一表: col1 value running_tot
1 10 0 (10)
2 15 0 (25)
3 50 0 (75)
……
若要將value列累積求和的結果放到running_tot 列,可以這樣:
DECLARE @run_total int
SELECT @run_total=0
UPDATE running_tot
SELECT @run_total=running_tot=run_total+value
FROM running_tot
這是一種高效的方法,使用了UPDATE語句中不太常用的特性,這種方法只使用一次邏輯讀來計算所有的值。(任何邏輯讀的次數都不可以少於1次)。可以把這個過程看作從右往左發生。