CASE文で複雑な条件を指定

CASE文を使うと複雑な条件を指定できます。SELECT句、GRUOP BY句、ORDER BY句でそれぞれ使用した例を紹介します。

基本書式

CASE 評価対象カラム名
    WHEN 条件値1 THEN 処理
    [WHEN 条件値2 THEN 処理] ...
    [ELSE 処理]
END
CASE
    WHEN 条件1 THEN 処理
    [WHEN 条件2 THEN 処理] ...
    [ELSE 処理]
END

動作確認用テーブル

動作確認のための準備をします。

CREATE TABLE `test`.`testtable` (
 `id` INT NOT NULL ,
 `old` INT NOT NULL ,
 `region` VARCHAR(100) NOT NULL ,
  PRIMARY KEY (`id`)
) ENGINE = InnoDB;
INSERT INTO `testtable` (`id`, `old`, `region`)
VALUES
(1, 50, '四国'),
(2, 23, '九州'),
(3, 11, '本州'),
(4, 80, '北海道'),
(5, 33, '本州');

下記テーブルを例に説明します。

mysql> SELECT * FROM `testtable`;
+----+-----+-----------+
| id | old | region    |
+----+-----+-----------+
|  1 |  50 | 四国      |
|  2 |  23 | 九州      |
|  3 |  11 | 本州      |
|  4 |  80 | 北海道    |
|  5 |  33 | 本州      |
+----+-----+-----------+
5 rows in set (0.00 sec)

SELECT句での使用例

データ値によって表示を変えたい場合などに使用します。

mysql> SELECT id, (CASE WHEN (old < 20)               THEN 'A'
    ->                  WHEN (old >= 20 AND old < 50) THEN 'B'
    ->                  ELSE 'C' END) as type 
    -> FROM testtable;
+----+------+
| id | type |
+----+------+
|  1 | C    |
|  2 | B    |
|  3 | A    |
|  4 | C    |
|  5 | B    |
+----+------+
5 rows in set (0.00 sec)

GRUOP BY句での使用例

mysql> SELECT COUNT(id), (CASE WHEN (old < 20)               THEN 'A'
    ->                        WHEN (old >= 20 AND old < 50) THEN 'B'
    ->                        ELSE 'C' END) as type 
    -> FROM testtable
    -> GROUP BY CASE WHEN (old < 20)               THEN 'A'
    ->               WHEN (old >= 20 AND old < 50) THEN 'B'
    ->               ELSE 'C' END;
+-----------+------+
| COUNT(id) | type |
+-----------+------+
|         1 | A    |
|         2 | B    |
|         2 | C    |
+-----------+------+
3 rows in set (0.00 sec)

ORDER BY句での使用例

任意の順序をつけたい場合に使用します。

mysql> SELECT id, region
    -> FROM testtable
    -> ORDER BY CASE region WHEN '北海道' THEN '1'
    ->                      WHEN '本州'   THEN '2'
    ->                      WHEN '四国'   THEN '3'
    ->                      WHEN '九州'   THEN '4'
    ->                      ELSE '' END;
+----+-----------+
| id | region    |
+----+-----------+
|  4 | 北海道    |
|  3 | 本州      |
|  5 | 本州      |
|  1 | 四国      |
|  2 | 九州      |
+----+-----------+
5 rows in set (0.00 sec)
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。