SQLでnullかどうかの判定ってどうやってするの?
IS NULL、IS NOT NULLってどうやって使うの?
わかりやすく教えてほしい!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
IS NULLの使い方
IS NULLはある列がNULLの行を選択するときに使う述語です。
NULLを選択したい場合は「=」が使えないのでIS NULLを使います。
例えば、次のようなshohinテーブルがあったとします。
shohin_mei | kakaku |
鉛筆 | 100 |
フライパン | 1500 |
牛肉 | |
Tシャツ | 1200 |
このshohinテーブルのkakakuがNULLの行を選択したい場合、SQLは次のようになります。
SELECT * FROM shohin WHERE kakaku IS NULL;
実行結果
shohin_mei | kakaku |
牛肉 |
このように、kakakuがNULLである牛肉のレコードだけ取得することができました。
IS NOT NULLの使い方
IS NOT NULLはある列が非NULLの行を選択するときに使う述語です。
非NULLを選択したい場合は「!=」が使えないのでIS NOT NULLを使います。
先ほどのshohinテーブルのkakakuがNULLではないレコードを選択したい場合、SQLは次のようになります。
SELECT * FROM shohin WHERE kakaku IS NOT NULL;
実行結果
shohin_mei | kakaku |
鉛筆 | 100 |
フライパン | 1500 |
Tシャツ | 1200 |
このようにkakakuがNULLでないレコードだけ取得することができます。
IS NULL、IS NOT NULLの使い方まとめ
解説の内容をまとめます。
- IS NULLはある列がNULLの行を選択するときに使う述語
- IS NOT NULLはある列が非NULLの行を選択するときに使う述語
- NULLを判定するのに「=」や「!=」は使えない
以上、お疲れ様でした。
コメント