nullを取得するにはどうしたらいいのか、SQLを始めたころは全くわかりませんでした。
一度でも取得してしまえば、簡単なので取得してみましょう。
※nullとは値がなにもない状態です。スペースとは違うので気をつけましょう。
動作環境
SQL FIDDLEでMySQL5.6、PostgreSQL9.6、SQLiteで動作確認しました。
下記文章は主にPostgreSQLの仕様で調べています。
is null
null値を取得するには「is null」を使用します。英語がわかる人なら覚えやすいですね。
「where カラム名 is null」を日本語で言い換えれば、「カラム名がnullであるところ」となります。
ついでにnullでない箇所を取得するには「is not null」を使用します。
構文
書き方の例です。
SELECT * FROM テーブル名 where カラム名 is null;
nullでない箇所を取得するには以下の書き方になります。
SELECT * FROM テーブル名 where カラム名 is not null;
実際にnull値を取得してみよう!
SQL FIDDLEを使うとオンライン上で実験ができます。
準備
テーブルを作成。
— 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)
以下のテーブルを使ってnullの行を取得してみます。
temid | tittle | episode |
---|---|---|
1 | 家政婦は見た! | (null) |
2 | 金田一少年の事件簿 | 第2話 |
3 | (null) | 第3話 |
4 | リーガルハイ | (null) |
5 | (null) | (null) |
null値を取得する
tittleがnullの箇所を取得してみましょう。
SELECT * FROM item where Tittle is null;
■ 結果
ItemID | Tittle | episode |
---|---|---|
3 | (null) | 第3話 |
5 | (null) | (null) |
応用 nullじゃないところ
SELECT * FROM item where Tittle is not null;
■ 結果
ItemID | Tittle | episode |
---|---|---|
1 | 家政婦は見た! | (null) |
2 | 金田一少年の事件簿 | 第2話 |
4 | リーガルハイ | (null) |
おわり
nullを取得する方法わかってしまえばすごく簡単ですね。
nullを別の値に変換してみたくなった方はこちらへ。