Case Expression vs Case Statement
Qual é a diferença entre umExpressão de Caso e umDeclaração de caso no MySQL? Quando eles podem ser usados e quais são os benefícios de usar um sobre o outro?
Sintaxe da declaração de caso:
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
Sintaxe de Expressão de Caso:
CASE
WHEN [condition] THEN result
[WHEN [condition] THEN result ...]
[ELSE result]
END
Estes parecem quase idênticos, mas a descrição inicial de Case Statements é queThe CASE statement for stored programs implements a complex conditional construct.
Então, é a diferença significativa que um é usado em programas armazenados e não utilizável em consultas normais? Eu tentei isso em uma consulta que eu estava jogando e falhou -sqlfiddle. Se este for o caso, por que não apenas usar o Case Expression em um programa armazenado?
Há alguma outra diferença sintática a ser percebida, uma vez que elas parecem idênticas?