データ内にNULL値があると何かと不便です。
AccessでODBC接続している場合など、NULL値を検索すると異様に遅くなったりします。
そんな時には思い切ってNULL値を0に置換するVIEWを作成してそちらに接続した方が早いです。
という訳で、今日はSQLServerでNULL値を0に置換する方法のご紹介です。
SQL ServerでNULLを置換する方法
NULL値を置換するにはIsNull関数を使います。
IsNull関数の構文
IsNull(置換したいフィールド, 置換後の値)
パラメータ(引数)は2つで、置換する対象となるフィールド、置換後の値(文字列・数値など)となっています。
SELECT ISNULL(flag, 0) FROM テーブル
サンプルの場合、flagフィールがNULlだった場合、0に置換され、NULLでなかった場合flagの値がそのまま出力されます。
SQL ServerでNULLを置換するその他の方法
単純にNULLを置換するだけであれば、IsNULL関数がお手軽ですが場合によってはNULLの時、また●●のように条件が追加される場合もあります。
その時はIIF関数(SQL Server2012以降)やCASE WHEN文を使います。
SELECT IIF(flag IS NULL, 0, flag) FROM テーブル
SELECT CASE WHEN flag IS NULL THEN 0 ELSE flag END FROM テーブル
今回は複数の条件ではなく、IIF関数を使ったNULL置換の例と、CASE WHENを使ったNULL置換の例を紹介しました。
複数の条件については以下の記事を参考にしてください。

まとめ
できれば値をセットするルールとしてNULLが入らないようになっている方が後々扱いやすいのですが、難しい場合は取得するときにNULL値を置換してしまいましょう!
コメント