Il CASE
l'espressione restituisce un valore, ovvero viene utilizzata per valutare uno di un insieme di risultati, in base a una condizione.
Esempio:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
Il CASE
istruzione esegue una di una serie di istruzioni, in base a una condizione.
Esempio:
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Vedi come sono simili, ma l'affermazione non restituisce un valore e può essere utilizzata da sola, mentre l'espressione deve far parte di un'espressione, ad es. una domanda o un compito. Non è possibile utilizzare l'istruzione in una query, poiché una query non può contenere istruzioni, solo espressioni che devono restituire qualcosa (la query stessa è un'istruzione, in un certo senso), ad es. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
non ha senso.