SQL ServerでNULLを置換する方法

当ページのリンクには広告が含まれています。
SQLの文法
  • URLをコピーしました!

データ内に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文を使います。

IIF関数の例

SELECT IIF(flag IS NULL, 0, flag) FROM テーブル

CASE WHENの例

SELECT CASE WHEN flag IS NULL THEN 0 ELSE flag END FROM テーブル

今回は複数の条件ではなく、IIF関数を使ったNULL置換の例と、CASE WHENを使ったNULL置換の例を紹介しました。

複数の条件については以下の記事を参考にしてください。

まとめ

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

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次