[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. MacにEclipseをインストールする方法のまとめ (さらに…)…
  2. ビューの作り方、ANSI_NULLS、QUOTED_IDENTIFIER、WITH(NOLOCK) …
  3. EXECUTE 権限がオブジェクト '関数名'、データベース 'データベース名'、スキーマ 'dbo…
  4. 画面のパラメータにより異なる検索条件や、異なるテーブルのデータを取得する際。 「UNION ALL…
  5. 年度の求め方と年度の上期、下期を求める。 (さらに…)…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る