SQL Server

SQL ServerでNULLを置換する方法

SQLの文法

データ内に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置換の例を紹介しました。

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

SQLの文法
【SQL Server】SQL文の中で条件分岐させる2つの方法SQLSeverで条件分岐を記述する方法です。CASE文を使う方法とIIF文を使う方法がありますので状況に応じてご利用ください。...

 

スポンサーリンク
 

まとめ

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

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら