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;Связанные термины
Анекдоты по теме
— Почему UUID медленнее INT как первичный ключ? — UUID случайный — вставки разбросаны по всему индексу. — INT последовательный — всегда в конец. — Насколько медленнее? — На больших таблицах B-tree страницы постоянно разбиваются. В разы медленнее INSERT. — Решение? — UUID v7 (упорядоченный по времени) или ULID — случайные, но монотонные.
— Как хранить деньги в базе данных? — DECIMAL(19,4) или NUMERIC(19,4). — Почему не FLOAT? — Потому что FLOAT неточный. 0.1 + 0.2 = 0.30000000000000004. — В банке это было бы проблемой. — Именно.
— Что такое tablespace? — Физическое место хранения данных на диске. — Зачем? — Поместить горячие таблицы на быстрый SSD, архивные — на медленный HDD. — Пример? — CREATE TABLESPACE fast_ssd LOCATION '/mnt/ssd/pg_data'; CREATE TABLE hot_data (...) TABLESPACE fast_ssd;