12. CASE式
- 式には単純式および検索式の2種類がある。後者は前者の機能をすべて含む。
- 式の句は省略できるものの、文を分かりやすくすべく省略しない方が良い。
- 式のは省略できない。
- 式を用いることで文を柔軟に組み替えることができる。
- 一部のは式を省略した関数を提供しているが、汎用性が無く機能が制限されるため、利用しない方が望ましい。
12.1 CASE式
で条件分岐を扱うには式を用いる。
12.2 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
ここで評価式は戻り値が真理値であるような式である。
単純式は評価式を事前に決めるため、での評価対象列を柔軟に変えたい場合には検索式を使わなければならない。句は省略可能である(省略するとを意味する。)。読みやすさのために省略しない方が望ましい。は省略不可能である。
12.3 CASE式のメリット
式の良い点は「式」である点にある。すなわち式が書ける場所であれば任意の場所で書くことができる点にある。
たとえば句で集約して合計をグループごとに出力した場合、出力結果は行で出力される。しかし複雑にはなるものの式を用いれば、これを列で出力することもできる。