0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【SQL】CASE式について

Last updated at Posted at 2021-06-05

SQLのCASE式について学んだことをまとめます。

CASE式の概要

CASE式は簡単に言えば「ラベルの読み替え」をやっているに過ぎないのです。
しかし、集約関数などの技術と一緒に使えば以下のことなどが可能です。

  • ラベルをまとめて読み替え
  • 「行持ち」から「列持ち」への変換
  • CHECK制約での条件分岐
  • UPDATE文で条件分岐させて更新
  • EXISTS述語を利用したクロス表の作成

CASE式の構文

単純CASE式のほうが簡潔に記載できますが、単純CASE式で書けるものは検索CASE式でも書けるため
検索CASE式を使うほうが無難でしょう。
また、ELSE句は必ず書くようにする。

単純CASE式

単純CASE式
CASE sex
    WHEN 1 THEN '男性'
    WHEN 2 THEN '女性'
ELSE 'その他' END

検索CASE式

検索CASE式
CASE
    WHEN sex = 1 THEN '男性'
    WHEN sex = 2 THEN '女性'
ELSE 'その他' END

CASE式の使用箇所

CASE式は評価すると一つの値になる式のため、以下の箇所のようなどこにでも記載することができます。

  • SELECT句
  • WHERE句
  • GROUP BY句
  • HAVING句
  • ORDER BY句
  • PARTITION BY句
  • CHECK制約の中
  • 関数の引数
  • 述語の引数
  • 他の式の中(CASE式自身も含む)
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?