CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
最初の例は、value=compare_value
に result
を戻します。2番目は true である最初の条件に結果を戻します。一致する結果値がない場合は、ELSE
のあとの結果が戻され、ELSE
パートがない場合は、NULL
が戻されます。
mysql>SELECT CASE 1 WHEN 1 THEN 'one'
->WHEN 2 THEN 'two' ELSE 'more' END;
-> 'one' mysql>SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
-> 'true' mysql>SELECT CASE BINARY 'B'
->WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
-> NULL
CASE
式のデフォルトの戻り値タイプは、すべての戻り値の適合集合体タイプですが、使用される文脈にもよります。ストリング文脈で使用される場合は、結果はストリングとして戻されます。数値文脈で使用される場合は、結果は
10 進値、実数値、または整数値として戻されます。
注記 :ここで示されている CASE
式 の構文は、ストアド ルーチン内で使用する場合、項17.2.10.2. 「CASE
ステートメント」 で説明されている、CASE
文 とはやや異なります。CASE
文は ELSE NULL
句を持つことができず、END
でなく、END CASE
で終了します。