CASE 句¶
CASE
句では、 if-then-else 型の論理を指定します。
CASE の構文¶
CASE <value:expression> WHEN <compare_value:expression>
THEN result [ WHEN <compare_value:expression> THEN result ...]
[ ELSE result ]
END
CASE WHEN <condition>
THEN result [ WHEN <condition> THEN result ...]
[ ELSE result ]
END
<condition> ::=
<condition> AND <condition>
| <condition> OR <condition>
| NOT <condition>
| ( <condition> )
| <value> <binary operator> <value> [ , <value> ]*
| <value> <binary operator> ( <value> [ , <value> ]* )
| <value> BETWEEN <value> AND <value>
| <value> <unary operator>
CASE
句は、以下の 2 つの方法で使用できます。
CASE
で式を評価し、値を取得します。つづいて、その値を各WHEN
句の式と比較します。一致が見つかると 結果 値が返されます。一致が見つかるまで
CASE
で各WHEN
句の条件を評価します。一致が見つかると 結果 値が返されます。
どちらの場合も、 ELSE
句がなく、一致が見つからなければ、 CASE
から NULL
が返されます。
すべての 結果 式は、型に整合性があることが必要です。たとえば、1 つの 結果 を boolean 型として、もう 1 つの結果を integer 型とすることはできません。ただし、1 つの 結果 を integer 型、もう 1 つの結果を float 型とすることはできます。
CASE
の使用方法の例については、付録「 CASE 句の例 」を参照してください。