所以我有3個不同的列(籃子1,2和3)。有時候這些列有所有的信息,有時候其中有一兩個是空的。我有另一個欄目,我將把這些值平均並保存。帶NULL的MS-SQL平均列
是否有一種圓滑/簡單的方法來獲得這三列的平均值,即使其中一個爲空?或者我必須爲每一個爲空的特殊檢查?
實例數據(~~爲null)
- B1 - B2 - B3 - Avg
------------------------------
- 10 - 20 - 30 - 20
- 10 - ~~ - 30 - 20
- ~~ - 20 - ~~ - 20
我怎麼會寫在T-SQL來更新我的臨時表?
UPDATE @MyTable
SET Avg = ???
答: 感謝Aaronaught爲我所用的方法。我會把我的代碼放在這裏,以防其他人擁有相同的東西。
WITH AverageView AS
(
SELECT Results_Key AS xxx_Results_Key,
AVG(AverageValue) AS xxx_Results_Average
FROM @MyResults
UNPIVOT (AverageValue FOR B IN (Results_Basket_1_Price, Results_Basket_2_Price, Results_Basket_3_Price)) AS UnpivotTable
GROUP BY Results_Key
)
UPDATE @MyResults
SET Results_Baskets_Average_Price = xxx_Results_Average
FROM AverageView
WHERE Results_Key = xxx_Results_Key;
您使用哪種RDBMS? – Quassnoi 2010-03-02 22:59:25