SQLにも条件分岐用の命令(CASEステートメント)がある。
このCASEステートメントを利用すると、かなり幅広い内容をSQLで実行することができる。

構文
CASE WHEN 条件 THEN 真の処理 ELSE 偽の処理 END
※真の処理は条件を満たす場合、偽の処理は条件を満たさない場合の処理
例)ある項目の値によって、別の項目の集計を変更する。
  利用テーブル:T_TEST
  表示項目:F_NAME, F_VALUEの集計値
  条件判定項目:F_KBN(1 or 2のみ)
  集計項目:F_VALUE
  ※F_VALUEは、F_KBNが1の場合は加算、F_KBNが2の場合は減算するものとする。
    SELECT
F_NAME,
SUM(CASE WHEN F_KBN = 1 THEN F_VALUE ELSE 0 END) -
SUM(CASE WHEN F_KBN = 2 THEN F_VALUE ELSE 0 END)
FROM T_TEST



【補足事項】
・上記以外にもコード値を表示名に置き換える等の利用方法がある。
・どのRDBMSでもCASEは利用できる。
Oracleに慣れている開発者は、CASEよりもDECODEステートメントの方が一般的に利用している。
 しかし、CASEステートメントは、SQL92から実装されているので歴史は割りと長い方だったりする。