Last-Modified: 2020/01/18
SQL|SELECT CASE WHEN ..句の使い方 | 条件で評価
SQL
SQLを調べる人
「条件を指定して、SQLでテーブルの値を評価したいです。SELECT CASE WHEN句をどのように指定すれば良いでしょう。」
こんな疑問に答えます。
結論から言うと、構文は以下の通りです。
[構文]
SELECT [カラム],
CASE
WHEN [条件] THEN [文字列1]
ELSE [文字列2]
END
FROM [テーブル名];
以下では、リンゴとオレンジとバナナのデータを使って解説します。
本記事の内容
事前準備
テスト用のテーブルを作成します。
CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,price INTEGER NOT NULL, PRIMARY KEY(id));
データは、果物とその価格を登録します。
INSERT INTO test (name,price) VALUES('Apple',150);
INSERT INTO test (name,price) VALUES('Apple',120);
INSERT INTO test (name,price) VALUES('Orange',120);
INSERT INTO test (name,price) VALUES('Orange',200);
INSERT INTO test (name,price) VALUES('Banana',150);
INSERT INTO test (name,price) VALUES('Banana',120);
このテーブルを使って解説します。
[実行結果]
+----+--------+-------+
| id | name | price |
+----+--------+-------+
| 1 | Apple | 150 |
| 2 | Apple | 120 |
| 3 | Orange | 120 |
| 4 | Orange | 200 |
| 5 | Banana | 150 |
| 6 | Banana | 120 |
+----+--------+-------+
SELECT CASE WHEN..句を使った例
以下にCASE文を使った具体的な例を示します。
SELECT name,price,
CASE
WHEN 150 > price THEN "good"
ELSE "bad"
END
FROM test;
実際の実行結果は以下の通りです。
[実行結果]
+--------+-------+----------+
| Apple | 150 | bad |
| Apple | 120 | good |
| Orange | 120 | good |
| Orange | 200 | bad |
| Banana | 150 | bad |
| Banana | 120 | good |
+--------+-------+----------+
SELECT CASE WHENで複数の条件を評価する
条件を評価するWHEN
は複数記載することもできます。
SELECT [カラム],
CASE
WHEN [条件] THEN [文字列1]
WHEN [条件] THEN [文字列2]
WHEN [条件] THEN [文字列3]
….
ELSE [文字列N]
END
FROM [テーブル名];
以下に複数のWHEN句を使った具体的な例を示します。
SELECT name,price,
CASE
WHEN 120 >= price THEN "good"
WHEN 150 >= price THEN "soso"
ELSE "bad"
END
FROM test;
実際の実行結果は以下の通りです。
[実行結果]
+--------+-------+----------+
| Apple | 150 | soso |
| Apple | 120 | good |
| Orange | 120 | good |
| Orange | 200 | bad |
| Banana | 150 | soso |
| Banana | 120 | good |
+--------+-------+----------+
ここでポイントは、1つ目のWHEN句に入った場合、2つ目のWHEN句を評価しません。
上から下に向かってパターンマッチしていくイメージです。
そのため、この例ですと1つ目のWHEN句と2つ目のWHEN句の順番を逆に書いてしまうと、1つ目にマッチしてしまい、2つ目が機能しませんので注意が必要です。
今回は以上です。
本記事の内容は、実際に手を動かしてみることをオススメします。
コピペで簡単に実行できますのでぜひ試して下さい。
最後に構文をおさらい
[構文]
SELECT [カラム],
CASE
WHEN [条件] THEN [文字列1]
ELSE [文字列2]
END
FROM [テーブル名];
エンジニアを志望する方や若手エンジニアの方向けの記事7本
下記の7本の記事を読むことで、ざっくりとエンジニアのキャリアイメージが掴めます。
IT業界地図とSIer業界地図を解説【業界研究にお役立て下さい】
IT業界・SI業界には様々な企業があり、全容を理解するのは困難です。ざっくり業界の概要を理解していただくために①IT業界地図(大きい地図)、②SI業界地図(小さい地図)の2つを用いて業界と各企業で働くエンジニアの仕事内容を解説します。エンジニアだけでなく、コンサルタントを志望する方にも有用です。
【言語別年収ランキングあり】IT業界|プログラミング初心者が学習すべき言語
プログラミング言語は古いものから新しいものまで特徴も様々ですが、初心者はどの言語を勉強すればいいでしょう。最新(2018年)言語別年収ランキングによると、GO言語とScala言語の求人が平均年収600万円と最も高いという結果になりました。ランキングの結果と業界歴12年の私の経験を鑑みてオススメの言語について解説します。
【SIer/WEB系】IT業界の平均年収は?【大手中心に解説】
IT業界に就職したら年収はどれくらいか、また若手のエンジニアにとっては将来年収がいくらくらい稼げるかというのは大変興味のあるところだと思います。一口に言うと業界の平均年収は593万円ですが、会社によって様々なので、IT業界における主要企業とその年収について解説します。ちなみに業界トップの野村総合研究所の平均年収は1,156万円です。
【ピラミッド】IT業界でSIerはオワコン?【技術力なし】
IT業界に就職するなら、就職先はざっくりWEB系かSIerになります。WEB系はyahoo,楽天,サイバーエージェントなど今をときめく会社が多いのに比べてSIerは歴史が古く、働き方も古臭いイメージです。SIerはIT業界よりも建築業界に近いとも言われます。しかし今後もITビジネスの基幹はSIerであり続けます。SIerの誤解を解き、SIerの今後の将来性の高さを解説します。
アプリケーションエンジニアの仕事内容・やりがい・志望動機は?
SIerにおけるアプリケーションエンジニアの役割を解説。アプリケーションエンジニアの最も基本的な仕事は、お客様の求めるシステムを実現するための機能(プログラム)を開発して納品することです。単純に求めるシステムを実現するだけでなく、見えないニーズを引き出したり、開発する業務の理解がなければ良いアプリケーションを作る事はできないのです。また、プロジェクトマネージャのようなアプリケーションエンジニアの上級職についても解説します。
インフラエンジニアの仕事を解説します【未経験から転職する方法も】
一口にITエンジニアといっても、様々な職種に細分化することができます。インフラエンジニアの業務は、電気・ガス・水道と同様に、システム共通で使う機能を安定的に提供するお仕事です。特徴は1.多くのインフラ機能がある事、2.他のシステムの担当になってもスキルを活かしやすい事です。インフラエンジニアになる方法や適正も解説しています。
【体験談】文系出身エンジニアのほうが出世する3つの理由【未経験でOK】
プログラミングしたことのない文系出身であっても、エンジニア職は立派に務まります。資料作成など文系出身者の方が身につきやすいスキルも多いですし、そういった技術系以外のスキルは出世に必要なスキルだったりします。技術以外のスキルも含め、バランスよく成長するのが中長期的に見て望ましいキャリアです。
現役で働いてるエンジニアの方向けの記事6本
IT業界での失敗談 | 私の失敗をあなたの糧にして下さい | エンジニア歴12年【就活・新人・転職】
私の自己紹介を兼ねて、12年間のエンジニア人生の中でやってしまった失敗談を紹介します。失敗を犯した時期によって、1.就職活動、2.新人時代、3.転職後、4.中堅になってからの4つに分類していますので、当てはまるステージに応じてご覧いただければ幸いです。
エンジニアは英語を習得すべきか【英語より大切な勉強3選もお伝えします】
英語の習得に必要な時間は2,000時間と言われます。年収アップが目的ならば、他に優先すべき事項がありそうです。社会人になると勉強しないといけないことがたくさんあります。適切なゴール設定をして、優先度をつけて、効率的に付加価値の高い知識を身に付けるようにしましょう。英語の習得を優先すべきか否かは、あくまで個人のゴール設定次第です。詳しく解説します。
COBOLエンジニアがJAVAエンジニアよりも市場価値が高い3つの理由【SEの年収アップの裏技あり】
COBOLをご存知でしょうか?1959年に開発された言語ですが、未だ現役で使われています。現在COBOLで稼働している業務は重要なものばかりですがエンジニアに人気が無く、人材不足は深刻です。しかしCOBOLから入って重要業務を理解すれば、大きな年収アップも夢ではありません。プログラミングスキルだけでは、どの言語でも年収に大差はないので重要業務の理解など、+αを身につけましょう。
【IT業界】セキュリティエンジニアの仕事内容・年収・転職方法まとめ
現代はどの企業でもサイバー攻撃による被害を恐れていて、企業経営における最大のリスク要因とも言われています。セキュリティエンジニアの仕事は、サイバー攻撃に対処すること。このほか、社内での内部犯行に対処するケースもあります。高い技術力や業務経験があれば、年収1,000万円以上稼ぐことも可能です。
【転職希望の方向け】IT業界 | SIerで年収1,000万円稼ぐには
まずはSIer内の職種について解説します。中でも高い年収を得るためには、①対象業務に詳しい②管理能力が高い、の2つが条件です。SIer社内には常にいくつものプロジェクトが立ち上がっており、①と②の能力をプロジェクトの現場で発揮することでプロジェクトマネージャ候補となり、年収アップが可能です。このほか、プロジェクトではなく運用保守で①と②の能力を発揮するキャリア、スペシャリストとして年収アップするキャリアも考えられます。
【金融エンジニア】IT業界志望なら、お金持ち系SIerがオススメです【転職】
IT業界に転職を考えている方へ。私はSIerへの転職をオススメします。その理由について記事では5つ挙げています。さらに年収アップの条件として、お金持ち系SIerへの転職をオススメしたいのですが、これについては具体的な企業名も含めてご紹介します。特に金融系がオススメで、私も金融系エンジニアの端くれです。
毎日の業務に悩むエンジニア向けの記事
仕事ができないと諦める前に見て欲しい5つの習慣
忙しくて仕事が回らなかったり、周囲に迷惑をかけてもう仕事辞めたいって思うこともありますよね。そんな時に見直して欲しい仕事の習慣を5つ挙げます。気が付いたこと、できることからコツコツと改善を積み上げて、粘り強く成長していきましょう。1.出社したらまず一日のスケジュールを立てる/2.1時間の予定のタスクを40分で終える/3.隙間時間を活用する/4.説明責任は果たすが言い訳はしない/5.帰宅前にやり残しタスクがないか再確認する
SEの仕事がつまらないエンジニアに送る解決策
SEの仕事がつまらない7つの原因を示し、その解決策を提案します。
仕事に対して感じる不幸な意識
現状に対して感じる不幸な意識
仕事をつまらなくする仕事
解決策1:意識を変える
解決策2:仕事の仕方を変える
どうしても仕事が合わなかったら職種を変えましょう
インフラエンジニアの仕事がつまらない、これだけの理由
私は12年前に社会人生活をインフラエンジニアとしてスタートさせました。6年程働いて身に染みてわかったことは、仕事をきっちりミスなくやることが最重視されるインフラという仕事が自分には向いてないということです。エンジニアとしてもっと面白いこと、面白いサービスの実現に関わりたい。間もなくして、私はアプリケーションエンジニアに転職したのでした。向いてないと思ったら思い切って職種は変えてOKです。
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。
ITエンジニアに強いおすすめの転職サイト・転職エージェント3選
転職成功には強くてニューゲームが条件。どうやって実現する?
SQL