ОсновыНачальный
CASE WHEN
Условное выражение в SQL — аналог if-else. Возвращает значение в зависимости от условия.
Синтаксис
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
ENDОбъяснение
CASE WHEN можно использовать в SELECT, WHERE, ORDER BY и внутри агрегатных функций.
Две формы:
1. Searched CASE: CASE WHEN condition THEN value ... END
2. Simple CASE: CASE expression WHEN value THEN result ... END
Пример
SELECT name,
CASE
WHEN score >= 90 THEN 'Отлично'
WHEN score >= 70 THEN 'Хорошо'
WHEN score >= 50 THEN 'Удовлетворительно'
ELSE 'Неудовлетворительно'
END AS grade
FROM students;Связанные термины
Анекдоты по теме
— Как отличить Junior от Senior в SQL? Junior пишет SELECT * FROM таблица. Senior пишет SELECT id, имя, фамилия FROM таблица. А потом добавляет WHERE и ORDER BY. И только потом запускает.
Программист: SELECT * FROM users WHERE created_at > '2024-01-01' Результат: 0 строк Программист: но данные есть! DBA: а тип колонки created_at какой? Программист: VARCHAR. DBA: (глубокий вздох)
— Что такое upsert? — INSERT, который превращается в UPDATE при конфликте. — Пример? — INSERT INTO counters (key, value) VALUES ('hits', 1) ON CONFLICT (key) DO UPDATE SET value = counters.value + 1; — Атомарный счётчик? — Именно.