複数カラムがnullの行を取得したい!SQL初心者の勉強

2020-07-30

null値を取得することは難しくないと思っていたけれどAとB列複数の列がnullの時はどのように取得すればいいのか今思えば簡単なことなのに悩んだので備忘録です。

複数カラムがnullの行を取得する方法

andを使って条件を足すだけでした。

SELECT * FROM テーブル名 where カラム名1 is null and カラム名2 is null;

実際に複数のカラムがnullの行を取得してみよう!

実際にサンプルコードで動きを見ながら使い方を確認してみましょう。

動作環境

SQL FIDDLEでMySQL5.6、PostgreSQL9.6、SQLiteで動作確認しました。
下記文章は主にPostgreSQLで仕様で調べています。

準備

以下のテーブルを使用してサンプルコードを作成します。

-- CREATE文
CREATE TABLE item (
ItemID numeric(8, 0) unique not null,
Tittle character varying (20) ,
episode character varying (20),
primary key(ItemID)
);
-- INSERT文
insert into item
values(0001, '家政婦は見た!', null),
(0002, '金田一少年の事件簿', '第2話'),
(0003, null, '第3話'),
(0004, 'リーガルハイ', null),
(0005, null, null)

実行すると作成されるテーブル内容。

temidtittleepisode
1家政婦は見た!(null)
2金田一少年の事件簿第2話
3(null)第3話
4リーガルハイ(null)
5(null)(null)
item

複数のnullの列を取得

SELECT * FROM item where Tittle is null and episode is null;

■ 実行結果

ItemIDTittleepisode
5(null)(null)

おわり

なんであんなに悩んでしまったのだろう。わかってしまえば簡単ですね。