Expresión de caso vs declaración de caso

¿Cuál es la diferencia entre unExpresión de caso y unDeclaración del caso en MySQL? ¿Cuándo se pueden usar y cuáles son los beneficios de usar uno sobre el otro?

Sintaxis de declaración de caso:

CASE
  WHEN search_condition THEN statement_list
  [WHEN search_condition THEN statement_list] ...
  [ELSE statement_list]
END CASE

Sintaxis de expresión de caso:

CASE 
  WHEN [condition] THEN result 
  [WHEN [condition] THEN result ...] 
  [ELSE result] 
END

Parecen casi idénticos, pero la descripción inicial de las declaraciones de casos es queThe CASE statement for stored programs implements a complex conditional construct.

Entonces, ¿la diferencia significativa es que uno se usa en programas almacenados y no se puede usar en consultas normales? Probé esto en una consulta con la que estaba jugando y falló.sqlfiddle. Sin embargo, si este es el caso, ¿por qué no usar simplemente Case Expression en un programa almacenado?

¿Hay otras diferencias sintácticas a tener en cuenta, ya que parecen ser idénticas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta