次のクエリ (簡略化) には、整数にキャストする必要がある文字列がありますが、そのフィールドのすべてのエントリに値があるわけではありません。int へのキャスト/ケースは、ステートメントの選択部分では正常に機能しますが、where ステートメントでは失敗します。私は同僚を手伝っていますが、なぜこれがうまくいかないのか、空白を描き続けています。何かご意見は?
SELECT cast((case when item = ' ' then 0 else item end) as int) as newNumber
FROM tablename
WHERE cast(trim(case when item = ' ' then 0 else item end) as INT) < 600
ここにエラーがあります
Invalid character found in a character string argument of the function DECFLOAT
エラーは、 WHEREステートメントが追加されたときにのみスローされます。