.net column

.NET開発者のためのブログメディア
クラウドサービスへの接続

SQL ServerのISNULLの使い方。判定と置き換えの方法を解説

2020年07月28日

SQL ServerはNULLが許容されているデータベースです。NULLは便利な反面、アプリケーションサイドとの兼ね合いで、空白スペースなどに置き換える場合も多々あります。SQL ServerではNULLに関する命令として、IS NULL演算子とISNULL関数が準備されています。IS NULL演算子はNULLの判定に利用されますし、ISNULL関数はNULLを他の文字列に置き換える際に利用します。ここで、両者の具体的な使い方などを確認していきましょう。

SE
SQL Serverを活用して、NULLを空白スペースに置き換えたいのですが、どのように実装すればいいですか?
PL
空白スペースに置き換える際には、ISNULL関数を利用します。そして、ISNULLには2通りの利用方法があります。もうひとつのIS NULL演算子の使い方もきちんと理解しておくと良いでしょう。

IS NULL演算子とは?使い方を解説

IS NULL演算子とは、NULLかどうかを判定するために利用する演算子です。主にWhere条件で利用することが多くなるかと思います。

アプリケーション開発の現場で、テーブルにNULLのデータが含まれているかの確認はよくあることです。もちろん、NULL以外のデータの確認もあるでしょう。IS NULL演算子はNULLが利用できるデータベースでは基本的な使い方ですので、早めに使い方はマスターしておきましょう。

使い方は非常に簡単です。まずはNULLのデータを取得する方法を解説します。
以下のテーブル情報をもとに検索します。

[DB_TOKYO].[dbo].[Table_1]

ID KU MACHI
1 渋谷区 桜丘町
2 港区 NULL
3 世田谷区 NULL
取得結果
上記のSQLを実行した結果です。
NULLのデータを取得

次にNULL以外のデータを取得するSQL文です。

取得結果
上記のSQLを実行した結果です。
NULL以外のデータを取得

使い方はとてもシンプルだということを確認できたかと思います。他の条件と組み合わせて早速使ってみましょう。

ISNULL関数とは?使い方を解説

データベースではNULLが許容されていても、アプリケーションサイドではNULLのためにシステム障害が発生することはよくあります。このようなエラーを起こさないよう、データベースサイドでISNULL関数を利用して、NULLを指定の文字列に置き換える処理を実装することも、SQLプログラミングのひとつです。

こちらも使い方は非常に簡単です。
先ほどと同じテーブル情報をもとに、NULLの項目を指定の文字列に置換しましょう。

[DB_TOKYO].[dbo].[Table_1]

ID KU MACHI
1 渋谷区 桜丘町
2 港区 NULL
3 世田谷区 NULL
取得結果
上記のSQLを実行した結果です。
NULLの置換

NULLが’置換’に変換されています。
ISNULL関数を使用してデータを取得する際には、AS句で項目に名前をつけましょう。つけていなかったら「(列名なし)」となってしまい、不具合の原因になる恐れもあります。

SE
IS NULL演算子とIS NULL関数の2通りのパターンがあるのですね。他のデータベースでもIS NULL演算子はあったのですが、ISNULL関数は知識不足でした。ここで確認できて良かったです。
PL
NULLを許容しているデータベースでは、IS NULL演算子、ISNULL関数ともに利用することが多くなります。確かにOracleなどはISNULL関数が別名の命令になるので、データベースの違いから少し戸惑う箇所かもしれません。開発現場では、両方ともよく利用する命令ですので、早めに理解しておきましょう。

IS NULL演算子とISNULL関数の使い方の違いは明確に

IS NULL演算子は、NULLかどうかを判定する際に利用する演算子で、ISNULL関数は、NULLを指定の文字列に変換する関数です。使い方も非常にシンプルですし、SQL自体はどこの開発現場でも必ずと言っていいほど利用されている言語ですので、積極的に活用して早く自分のものにしましょう。

>>>SQL Serverの案件を探すならFEnet .NET Navi


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)