.net column
.NET開発者のためのブログメディア

SQLServerでのnullの扱い方について・update文やdelete文でのNULL要素のレコードの操作

2020年10月29日
SE
SQLServerでNULLのレコードを取得するにはどうすればいいのですか。
PM
「is null演算子」を使います。その他、NULL以外のレコードを操作するには「is not null演算子」を使います。

SQLServerでのnullの扱い方について


今回は、SQLServerでのNULLの扱い方について説明します。

NULLのレコードを操作(select/update/delete)する方法やNULL以外のレコードを操作する方法を紹介します。また、要素がNULLの場合は指定文字に置換することもできます。

SQLServerでのNULLの扱い方に興味のある方はぜひご覧ください。

is null演算子

SQLServerでは、NULLか否かをチェックする「is null演算子」があります。

主にwhere句で使用し、NULLのレコードを取得できます。

ここでは、以下のような”table_1″テーブルがあるとします。

is null演算子を使った例を見てみましょう。

実行結果は以下のようになります。

last_nameがNULLのレコードが取得できていることが分かります。

このように、SQLServerではis null演算子を使用して、NULLのレコードを取得できます。

is not null演算子

SQLServerでは、is null演算子とは逆に、NULLでないレコードを取得できる「is not null演算子」があります。

実際のSQL文を見てみましょう。

実行結果は以下のようになります。

first_nameがNULLでないレコードが取得できていることが分かります。

このように、SQLServerではis not null演算子を使用して、NULLではないレコードを取得できます。

nullまたは空白を取得

先ほどはNULLのレコードを取得する方法を紹介しました。

ここでは、NULLまたは空白のレコードを取得する方法を紹介します。

実際のSQL文を見てみましょう。

実行結果は以下のようになります。

last_nameがNULLまたは空白のレコードが取得できていることが分かります。

is null演算子とor句でつないで、NULLまたは空白のレコードが取得します。

isnull関数

SQLServerでは、NULLの要素を指定文字列で置換する「isnull関数」があります。

次のように記述します。

実際のSQL文を見てみましょう。

実行結果は以下のようになります。

nullの要素が空文字”に置換されていることが分かります。

このように、SQLServerではisnull関数を使用して、NULLの要素を指定文字列で置換します。

caseでnullを取得する

先ほどはisnull関数を使用して、NULLの要素を指定文字列で置換する方法を紹介しました。

isnull関数ではなく、case文でも同じことができますので、その方法を紹介します。

実際のSQL文を見てみましょう。

実行結果は以下のようになります。

このように、SQLServerではcase文でも、NULLの要素を指定文字列で置換できます。

update文やdelete文でnullを扱う

select文だけでなく、update文やdelete文のwhere句でも、NULL要素のレコードの操作ができます。

それではupdate文の例を見てみましょう。

実行結果は以下のようになります。

last_nameがNULLのレコードを更新できていることが分かります。

次に、delete文の例を見てみましょう。

実行結果は以下のようになります。

first_nameがNULLのレコードが削除されていることが分かります。

このように、select文だけでなく、update文やdelete文のwhere句でも、NULL要素のレコードの操作ができます。

SE
NULLはisnull関数やcase文でも操作できるのですね。
PM
はい。update文やdelete文でもnullを扱うことができます。

まとめ

いかがでしたでしょうか。SQLServerでのNULLの扱い方について説明しました。

NULLのレコードを操作(select/update/delete)する方法やNULL以外のレコードを操作することができます。また、要素がNULLの場合は指定文字に置換することもできます。

ぜひご自身でSQL文を書いて、理解を深めてください。


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

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

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

Search

Popular

reccomended

Categories

Tags