値がNULLのものを取得(IS NULL句)

広告
eyecatch

条件式を記述する時に IS NULL 句を使用すると、カラムの値が NULL と一致するかどうかの条件式を記述することができます。ここでは IS NULL 句を使った条件式の記述方法について解説します。

条件式を記述するときに使用する WHERE 句については「取得するデータの条件を設定(WHERE句)」を参照されてください。

IS NULL句を使った条件式の記述

IS NULL句を使用するとカラムの値が NULL と一致するかどうかの条件式を記述することができます。書式は次の通りです。

SELECT カラム名 , ... FROM テーブル名 WHERE カラム IS NULL;

カラムの値が NULL のデータだけを取得します。 IS NULL の代わりに ISNULL も使用できます。

またカラムの値が NULL ではないデータを取得するには IS NOT NULL 句を使います。

SELECT カラム名 , ... FROM テーブル名 WHERE カラム IS NOT NULL;

カラムの値が NULL ではないデータだけを取得します。 IS NOT NULL の代わりに NOTNULL や NOT NULL も使用できます。

----

では実際に試してみます。次のようなテーブルを作成しました。

create table user(id integer, name text, address text);

IS NULL句を使った条件式の記述(1)

INSERT 文を使ってテーブルにデータをいくつか格納しておきます。

insert into user values(1, 'Honda', 'Tokyo');
insert into user(id, name) values(2, 'Katou');
insert into user values(3, 'Suzuki', 'Osaka');
insert into user values(4, 'Nishi', 'Nagoya');
insert into user(id, name) values(5, 'Toda');

IS NULL句を使った条件式の記述(2)

取得するデータの条件を指定しないでデータを取得した場合は次のようになります。 address カラムに null が格納されているデータがあります。

select * from user;

IS NULL句を使った条件式の記述(3)

それでは IS NULL 句を使って address カラムの値に null が含まれているデータだけを取得してみます。

select * from user where address is null;

IS NULL句を使った条件式の記述(4)

カラムに null が含まれているデータを取得することができました。

今度は IS NOT NULL 句を使って先ほどとは逆にカラムの値が null ではないデータを取得してみます。

select * from user where address is not null;

IS NULL句を使った条件式の記述(5)

カラムに null が含まれていないデータを取得することができました。

なお = 演算子を使ってカラムの値を null と比較しても正しい結果はかえってきません。次のようにいくつかの SELECT 文を実行しています。

select * from user where address = null;
select * from user where address = NULL;
select * from user where address = '';

IS NULL句を使った条件式の記述(6)

いずれの場合もデータを取得することできません。このように値が NULL かどうかを調べるには IS NULL 句を使用する必要があります。

-- --

IS NULL 句を使用してカラムの値が NULL かどうかを調べる条件式を記述する方法について解説しました。

SQLite入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。