「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。目下、データ分析・語学に力点を置いています。今月(2022年10月)からは多忙につき、日々の投稿数を減らします。

MENU

データベースとSQL(15/20)

はじめに

 データ分析を行う場合、データの管理運用、蓄積も重要な論点となる。そのためにはSQLやデータベースの知識が求められる。そこでまずは

を基にSQLの勉強をしていく。

12. CASE式

  • \mathrm{CASE}式には単純\mathrm{CASE}式および検索\mathrm{CASE}式の2種類がある。後者は前者の機能をすべて含む。
  • \mathrm{CASE}式の\mathrm{ELSE}句は省略できるものの、\mathrm{SQL}文を分かりやすくすべく省略しない方が良い。
  • \mathrm{CASE}式の\mathrm{END}は省略できない。
  • \mathrm{CASE}式を用いることで\mathrm{SELECT}文を柔軟に組み替えることができる。
  • 一部の\mathrm{DBMS}\mathrm{CASE}式を省略した関数を提供しているが、汎用性が無く機能が制限されるため、利用しない方が望ましい。

12.1 CASE式

 \mathrm{SQL}で条件分岐を扱うには\mathrm{CASE}式を用いる。

12.2 CASE式の構文

 \mathrm{CASE}式には単純\mathrm{CASE}式と検索\mathrm{CASE}式がある。

-- 単純CASE式の構文
CASE <式>
          WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          …
          ELSE <式>
END

-- 検索CASE式の構文
CASE WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          WHEN <評価式> THEN <式>
          …
          ELSE <式>
END

ここで評価式は戻り値が真理値であるような式である。
 単純\mathrm{CASE}式は評価式を事前に決めるため、\mathrm{WHEN}での評価対象列を柔軟に変えたい場合には検索\mathrm{CASE}式を使わなければならない。\mathrm{ELSE}句は省略可能である(省略すると\mathrm{ELSE\ NULL}を意味する。)。読みやすさのために省略しない方が望ましい。\mathrm{END}は省略不可能である。

12.3 CASE式のメリット

 \mathrm{CASE}式の良い点はである点にある。すなわち式が書ける場所であれば任意の場所で書くことができる点にある。
 たとえば\mathrm{GROUP\ BY}句で集約して合計をグループごとに出力した場合、出力結果は行で出力される。しかし複雑にはなるものの\mathrm{CASE}式を用いれば、これを列で出力することもできる。

プライバシーポリシー お問い合わせ