CASE WHEN
Условное выражение в SQL — аналог if-else. Возвращает значение в зависимости от условия.
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
ENDОбъяснение
Пример
SELECT name,
CASE
WHEN score >= 90 THEN 'Отлично'
WHEN score >= 70 THEN 'Хорошо'
WHEN score >= 50 THEN 'Удовлетворительно'
ELSE 'Неудовлетворительно'
END AS grade
FROM students;Связанные термины
Анекдоты по теме
— Почему все делают id BIGINT, а не INT? — INT: до 2 миллиардов. Звучит много. — Пока не окажется, что у вас 3 миллиарда строк. — Это же невозможно! — Twitter так тоже думал.
— Когда денормализация оправдана? — Когда JOIN слишком дорог для критичных запросов. — Примеры? — Материализованные агрегаты: сохранить total_orders в таблице users. — Дублирование для аналитики: OLAP схемы специально денормализованы. — Риски? — Несогласованность. Нужны триггеры или приложение для синхронизации.
— Что такое upsert? — INSERT, который превращается в UPDATE при конфликте. — Пример? — INSERT INTO counters (key, value) VALUES ('hits', 1) ON CONFLICT (key) DO UPDATE SET value = counters.value + 1; — Атомарный счётчик? — Именно.