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 で終了します。