【初学者必見!】SQLの基本、実務使用例を徹底解説!case when編

【初学者必見!】SQLの基本、実務使用例を徹底解説!case when編 SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

本記事は、SQLの基本、実務使用例編になります。

SQLの基礎に関しましては、

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

本編に入ります!

case whenとは?

まるで「もし○○なら→××、そうでなければ→△△」というIF文のような使い方ができる構文です。
SQLでは、表形式でデータを出力するときに、条件によって表示内容を切り替えるのに使います。

case whenの基本構文

筆者
筆者

まずは、基本構文から見ていきましょう!

case 
  when 条件1 then 値1
  when 条件2 then 値2
  else 値3
end

when:条件を指定

then:その条件が true のときに返す値

else:すべての条件に当てはまらないときの値(省略可能)

実務レベルの使用例を見ていこう!

筆者
筆者

実際に、SQLを使用してデータを確認していきましょう。

SQLに関しては以下を使用して解説していきます。

create table文、select文、insert文、update文、delete文、

drop table文、につきましては、過去にアップロードした

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

目次の、「ふりかえり」のところにそれぞれの記事のリンクが

貼ってあるよ!

または、サイドバーのカテゴリーにSQLがあるから、そちらからでも

参照できます!

Oracle Live SQLで実行していきます!

今回、実行するSQLの一覧

サンプルテーブル作成

従業員の年齢に応じて「区分(未成年/成人)」を出したいとします。

create table employees (
  id         number,
  name       varchar2(50),
  age        number
);

データ追加

insert into employees values (1, '山田', 17);
insert into employees values (2, '佐藤', 20);
insert into employees values (3, '鈴木', 30);

CASE WHEN を使った SELECT 文

select
  id,
  name,
  age,
  case
    when age < 20 then '未成年'
    when age >= 20 then '成人'
  end as 区分
from
  employees;

case whenselect だけでなく、order by, where, group by でも使えます。

条件は複数指定できます。

else を省略すると、条件に一致しない場合は NULL になります。

「テストの点数に応じて、A/B/C評価をつける」という例で CASE WHEN を使用

条件ルール(例)

点数評価
80点以上A
60点以上80点未満B
60点未満C

サンプルテーブル作成

create table test_scores (
  student_id   number,
  student_name varchar2(50),
  score        number
);

データ追加

insert into test_scores values (1, '田中', 85);
insert into test_scores values (2, '中村', 75);
insert into test_scores values (3, '小林', 58);
insert into test_scores values (4, '佐々木', 60);
insert into test_scores values (5, '加藤', 80);

case when を使って評価をつける

select
  student_id,
  student_name,
  score,
  case
    when score >= 80 then 'A'
    when score >= 60 then 'B'
    else 'C'
  end as 評価
from
  test_scores;

ポイント解説

  • when score >= 80 で「80点以上」はA
  • when score >= 60 は「60点以上80点未満」に対応(80点以上は前で処理されるため)
  • else 'C' で残り(60点未満)を処理

まとめ

筆者
筆者

case whenについて解説しました。

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました