0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:SQLのIF文みたいなCASE式について書き方忘れがちなCASE式をまとめてみた

Posted at

はじめに

SQLを使ってデータを操作・表示する際、条件によって異なる値を返したいケースがあります。

そんなときに役立つのが「CASE式」です。

この記事では、CASE式の基本的な使い方と実用例を、個人の備忘録としてまとめています。


書こうと思ったきっかけ

実務でデータベースから集計結果を表示する際に、「条件によって出力値を変えたい」という場面が多くありました。IF文のような感覚で使えるCASE式を整理することで、より柔軟なSQLを書くための参考にしようと思いました。


CASE式とは?

CASE式は、SQL文の中で条件分岐を行うための構文です。IFやswitch文のような役割を果たし、条件に応じて異なる値を返すことができます。

基本構文:

CASE
  WHEN 条件1 THEN 1
  WHEN 条件2 THEN 2
  ...
  ELSE デフォルト値
END

SELECT句、WHERE句、ORDER BY句など、さまざまな箇所で使用可能です。


使用例

1. 評価に応じた文字列の変換

SELECT 名前,
       点数,
       CASE
         WHEN 点数 >= 80 THEN '優'
         WHEN 点数 >= 60 THEN '良'
         WHEN 点数 >= 40 THEN '可'
         ELSE '不可'
       END AS 評価
FROM 成績表;

2. フラグのON/OFFを表示用に変換

SELECT ユーザーID,
       メール配信フラグ,
       CASE メール配信フラグ
         WHEN 1 THEN '配信中'
         WHEN 0 THEN '停止中'
         ELSE '不明'
       END AS 配信ステータス
FROM ユーザー一覧;

まとめ

CASE式は、SQL文における柔軟な条件分岐を実現する強力なツールです。

IF文感覚で使えるため、数値やフラグに応じた文字列変換、表示調整、グループ化などに非常に便利です。

シンプルな集計処理にとどまらず、出力の表現力を高めるためにも、CASE式は積極的に活用していきたい構文のひとつです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?