[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. 画面のパラメータにより異なる検索条件や、異なるテーブルのデータを取得する際。 「UNION ALL…
  2. 無料動画セミナー・クラスメンバとインスタンスメンバ (さらに…)…
  3. 割り算に必須な0除算回避 (さらに…)…
  4. NPOIを使ってExcelの読み書きをする方法 (さらに…)…
  5. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る