次のエラーメッセージが表示されます:
メッセージ 8134、レベル 16、状態 1、行 1 ゼロ除算エラーが発生しました。
このエラー メッセージが二度と表示されないように SQL コードを記述する最適な方法は何ですか?
次のいずれかを実行できます。
- 除数がゼロにならないようにwhere句を追加します
または
- ゼロに対して特別な処理が行われるように、case ステートメントを追加できます。
句を使用するのが最善の方法でしょうかNULLIF
?
もっと良い方法はありますか、またはこれをどのように実施できますか?
ベストアンサー1
「ゼロ除算」エラーを回避するために、次のようにプログラムしました。
Select Case when divisor=0 then null
Else dividend / divisor
End ,,,
しかし、もっと良い方法があります:
Select dividend / NULLIF(divisor, 0) ...
ここで唯一の問題は、「/」キーを使用する場合に NullIf ビットを覚えておくことです。