CASE
wyrażenie ewaluuje do wartości, tj. jest używane do ewaluacji do jednego ze zbioru wyników, na podstawie pewnego warunku.
Przykład:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
CASE
instrukcja wykonuje jedną z zestawu instrukcji na podstawie pewnego warunku.
Przykład:
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Widzisz, że są do siebie podobne, ale stwierdzenie nie ewaluować do wartości i może być używany samodzielnie, podczas gdy wyrażenie musi być częścią wyrażenia, np. zapytanie lub zadanie. Nie możesz użyć instrukcji w zapytaniu, ponieważ zapytanie nie może zawierać instrukcji, a jedynie wyrażenia, które mają do czegoś ewaluować (samo zapytanie jest w pewnym sensie instrukcją), np. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
nie ma sensu.