CASE値式により、対応するソース行でどの条件が満たされたかに応じて、ターゲット行の派生列の値が変わるようにすることができます。 CASE値式の構造はCASE DML式と同じですが、各条件に関連付ける式が、次のように、DMLグループではなく、数値式または文字列値式である点が異なります。
CASE WHEN <condition 1> THEN <value expression 1>
WHEN <condition 2> THEN <value expression 2>
: : : :
WHEN <condition n> THEN <value expression n>
ELSE <value expression n+1>
END
CASE値式の値は、満たされた最初の条件に対応する式の値です。条件が満たされない場合は、ELSE式の値になり、ELSE式が存在しない場合、値はNULLになります。 値式は、すべて同じ基本タイプのデータ値(すべて数値かすべて文字列)に対して評価される必要があります。
CASE値式の例
SELECT COL1
CASE WHEN COL2 < 256 THEN COL4 * 16
WHEN COL2 > 32767 THEN COL4 + COL5
ELSE COL6
END AS COL2,
COL3 FROM...