【SQL】UNIONについて
こんにちは。駆け出しエンジニアの竹前です。ここでは、SQLのUNION演算子について説明します。SQLについて勉強している方の参考になれば幸いです。UNIONとはUNION演算子は、複数のテーブルのデータを合わせて表示する場合に使います。複数のテーブルのデータを表示する場合、通常のSELECT文では、表示するテーブルの分だけ実行する必要があり、実行結果はテーブルごとに表示されます。UNIONでSE
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
こんにちは。駆け出しプログラマーの松下です!
「IS NULL演算子」と「IS NULL関数」について説明します。
SQLについて学び始めたばかりという方の参考になれば幸いです。
例ではMicrosoft SQL Serverを使用し、あらかじめ作成した下記の"employees"テーブルからのデータ取得をします。
NULLは値の未定義を意味する値で、0や空文字ではありません。
値が未定という意味を持っているため、NULL同士でも等しくならず、計算や比較には使えません。
つまりNULLは等号(=)や不等号(<>≦≧)の対象にならないのです。
そのためデータベースでNULLを検索するには、「カラム名=NULL」と指定するのではなく、専用の命令句「IS NULL演算子」を使います。
IS NULL演算子はWHEREなどと組み合わせて使われることが多く、NULLか判定したい列名の後ろにIS NULLをつけます。
SELECT * FROM employees WHERE 名前 IS NULL;
名前がNULLの2行のデータが取得されました。
逆にNULL以外を探すときにはIS NOT NULL演算子を使います。
SELECT 社員番号,名前,年齢 FROM employees WHERE 名前 IS NOT NULL;
名前がNULLでないデータが取得されました。
IS NULL演算子と紛らわしいものでIS NULL関数があります。
これはNULLを指定した文字列に置き換える関数です。
ISNULL(NULLかチェックしたい要素,置き換えたい文字列) と記述します。
SELECT 社員番号,ISNULL(名前,'new employee') FROM employees;
名前がNULLだったところがnew employeeに置き換わっています。
前述の通りNULLを含むものは集計の対象外になってしまうので、この関数はNULLを含むデータも合わせて集計したいときに活用できます。
SELECT COUNT(名前) AS '数',AVG(年齢) AS '平均' FROM employees;
SELECT COUNT(ISNULL(名前,'new employee')) AS '数'
,AVG(ISNULL(年齢,0)) AS '平均'
FROM employees;
NULLのデータが数えられ、年齢のNULLを0に置き換えてるので平均はISNULLを使ってない方より小さくなりました。
IS NULL関数は、Microsoft SQL Serverなど一部の環境でしか使えませんが、それぞれの環境に別名で同様の機能の関数があります。
・NVL
Oracleで使用します。
NVL(NULLかチェックしたい要素,置き換えたい文字列)
またNVL2というNULLでない場合にも置き換える値を設定できる関数もあります。
NVL2(NULLかチェックしたい要素,要素がNULLでないとき置き換えたい文字列,要素がNULLのとき置き換えたい文字列)
・IF NULL
MYSQL、SQLiteで使用します。
IFNULL(NULLかチェックしたい要素,置き換えたい文字列)
・COALESCE
PostgreSQLをはじめ主要DBMSで使用できます。
COALESCE(NULLかチェックしたい要素,置き換えたい文字列)
COALESCE(カラム1,カラム2,カラム3,カラム4,…,置き換えたい文字列)
後者のように、カラム1がNULLならカラム2の値を表示し、カラム2がNULLならカラム3の値を…、全てNULLなら最後に記述した値に置き換えるといった使い方もできます。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート