[SQL Server]NULLと0または空文字を除外する

[スポンサードリンク]

「NULLと0」または「NULLと空文字」を除外する

下記のソースは
「数値項目 IS NOT NULL AND 数値項目 != 0」
「文字列項目 IS NOT NULL AND 文字列項目 != ”」
を簡潔にし、かつバグを防ぐものである。

論理演算子を使わずに、ISNULLで簡潔にする。

よくあるバグ

これは仕様バグの場合もあるし、コーディングミスの場合もある。

仕様書には「NULL以外」や「IS NOT NULL」と書かれている場合でも、実際のテーブルの値は「NULL」ではなく空文字「”」の場合だったり。

空文字「”」の想定で仕様書が書かれていても、外部結合などによる影響で結果が「NULL」である場合。

また、そのどちらのケースも同時に発生する場合がある。

このとき、NULLや0、空文字を除外して計算またはデータを取得しなければならない場合の対処方法を記載する。

実際に、プログラマにより、「NULLと0」または「NULLと空文字」に対応していたり、NULLまたは空文字(または0)のみに対応していたり、バラバラな場合があり、これがバグを生む。

NULLと0

「NULLと0」であるかを判断する

「NULLと0」を除外する

下記のソースコードは
「WHERE QTY IS NOT NULL AND QTY != 0」
を簡潔にするものである。

NULLと空文字

「NULLと空文字」であるかを判断する

「NULLと空文字」を除外する

下記のソースコードは
「WHERE RESULT IS NOT NULL AND RESULT != ” 」
を簡潔にするものである。

[スポンサードリンク]

関連記事

コメント

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

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

CAPTCHA


ピックアップ記事

  1. SSRSのデータセットにクエリが貼り付けられない場合 (さらに…)…
  2. いまの時代、一つの企業に就職してそこで定年を迎えるというのはまれです。 しかし、それが一番いいと私…
  3. NPOIを使ってExcelの読み書きをする方法 (さらに…)…
  4. 割り算に必須な0除算回避 (さらに…)…
  5. 本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。 …

カテゴリー

[スポンサードリンク]




ページ上部へ戻る