[SQL Server]NULLIF関数で0除算を回避する

[スポンサードリンク]

割り算に必須な0除算回避

0のデータがなさそうな計算式でも0除算の対策が必要

たとえば、工場の生産数を生産計画数で割るとき、普通は計画数が0で生産数に値があること自体ありえないと思う。

計画してないものを生産するというのはデータ的に考えられないが、実際にそのようなデータがあったので、そのデータが正しいかどうかは別として、コード的に対策が必要となる。

0除算の対策としては、計算式によるがCASE文で割られる数が0ならば1にしてしまう場合もあるが、NULLにしてしまう対策もある。

NULLIF関数

NULLIF(引数1,引数2)

引数1が引数2と同じならばNULLを返す。

「NULLIF(生産計画数,0)」と書けば、生産計画数が0の場合NULLになる。

データを出すか出さないか

データを出さない場合の0除算回避に使うのは、NULLIF関数を使い。

データを出す場合の0除算はCASE文を使用する。

また、生産計画数が0の場合は100にする場合はこうも書ける。
ISNULLは第一引数がNULLの場合第二引数に置き換える関数である。

[スポンサードリンク]

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. MacにEclipseをインストールする方法のまとめ (さらに…)…
  2. SUM関数を使用して累計を求める (さらに…)…
  3. リモートデスクトップ接続のサーバーで、スタートメニューが反応しなくなった場合 (さらに&hell…
  4. SQLServer SELECT文で連番を振る(項目ごとの連番・通し連番) (さらに&helli…
  5. EXECUTE 権限がオブジェクト '関数名'、データベース 'データベース名'、スキーマ 'dbo…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る