當我運行以下查詢時,出現錯誤「無法將VARCHAR轉換爲FLOAT」。問題是我的團隊中的其他人在設計數據庫的同時,將毫秒數作爲varchar和sSometime設置爲不存在,因此他將「NA」代替。SQL Conditional Cast VARCHAR for FLOAT
現在,當我將毫秒數值轉換爲AVE()時,「NA」不能被轉換。有沒有辦法來定義「NA」默認值,如:
IF a.Milliseconds == "NA"
0
ELSE
CAST(a.Milliseconds AS FLOAT)
SELECT
b.Date,
AVG(CAST(a.Milliseconds AS FLOAT)) AS Milliseconds,
FROM Fields a
INNER JOIN Cycles b
ON a.CyclesId = b.Id
GROUP BY b.Date
Sample Data
CyclesId | Milliseconds
1 | 24.1557
2 | 23.4886
3 | NA
如果可行,更改表模式以使毫秒爲空的浮點列,並相應地更新應用程序。 – 2012-07-25 21:44:13