Le CASE
l'expression est évaluée à une valeur, c'est-à-dire qu'elle est utilisée pour évaluer l'un d'un ensemble de résultats, en fonction d'une condition.
Exemple :
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
Le CASE
instruction exécute l'une des instructions d'un ensemble, en fonction d'une condition.
Exemple :
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Vous voyez à quel point ils sont similaires, mais la déclaration ne le fait pas est évalué à une valeur et peut être utilisé seul, tandis que l'expression doit faire partie d'une expression, par ex. une requête ou un devoir. Vous ne pouvez pas utiliser l'instruction dans une requête, car une requête ne peut pas contenir d'instructions, uniquement des expressions qui doivent être évaluées à quelque chose (la requête elle-même est une instruction, d'une certaine manière), par ex. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
n'a aucun sens.