第1部 魔法のSQL 1-1 CASE式のススメ|達人に学ぶSQL徹底指南書
1-1 CASE式のススメ
既存のコード体系を新しい体系に変換して集計する
GROUP BY句でCASE式を使うことで、集計単位を自由に設定できる。動的な変更もできる。
PostgreSQL,MySQLでは、SELECT句のCASE式に別名をつけて、GROUP BY句で参照できる。※標準違反
異なる条件の集計を1つのSQLで行う
SQLの結果を二次元表形式に整形できる。クロス表の形式で結果が出力される。
WHERE句で条件分岐させるのは素人のやること。プロはSELECT句で分岐させる。
CHECK制約で複数の列の条件関係を定義する
CHECK制約でCASE式が使える。 論理積よりもゆるい条件法で記述できる。
条件を分岐させたUPDATE
複数のUPDATEを、CASE式を使って1つのSQLで実現できる。 退避用の値を用意しなくてすむ。
テーブル同士のマッチング
DECODE関数などと比べると、CASE式は式の中で式を評価できる(BETWEEN, Like, >, < etc..といった述語群を使える)。
CASE式の中で集約関数を使う
集約結果に対する条件をHAVING句ではなく、CASE式を使うことでSELECT句で書くことができる。
HAVING句で条件分岐させるのは素人のやること。プロはSELECT句で分岐させる。
まとめ
CASE式は、列名や定数を書ける場所には常に書くことができる。 便利だからCASE式を使おう。
Link
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型