De CASE
uitdrukking evalueert tot een waarde, d.w.z. het wordt gebruikt om te evalueren naar een van een reeks resultaten, op basis van een bepaalde voorwaarde.
Voorbeeld:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
De CASE
statement voert een van een set instructies uit, gebaseerd op een voorwaarde.
Voorbeeld:
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Je ziet hoe ze op elkaar lijken, maar de uitspraak niet evalueren tot een waarde en kan op zichzelf worden gebruikt, terwijl de uitdrukking deel moet uitmaken van een uitdrukking, b.v. een vraag of een opdracht. U kunt de instructie niet in een query gebruiken, omdat een query geen statements kan bevatten, alleen expressies die naar iets moeten worden geëvalueerd (de query zelf is in zekere zin een statement), b.v. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
slaat nergens op.