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...