次のクエリを実行すると、「VARCHAR を FLOAT にキャストできません」というエラーが表示されます。問題は、私のチームの他の誰かがしばらく前にDBを設計し、ミリ秒をvarcharとして配置し、値がそこにない場合があるため、代わりに「NA」を配置したことです。
Milliseconds の値をキャストして 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