Занятие 05. Условные конструкции: операторы CASE, IF
⚡ Кратко: суть темы
Занятие учит создавать новые столбцы на основе условий. Разбираем оператор CASE, псевдонимы AS, функцию IF в MySQL, математические операции, строковые функции и конкатенацию.
CASE WHEN ... THEN ... ELSE ... END— переносит ветвление в SQL.ASзадаёт понятное имя вычисляемому столбцу.IF(condition, true, false)— короткая альтернатива CASE, но только в MySQL.
Что запомнить: CASE — стандарт SQL и работает почти везде; IF — специфика MySQL.
Частая ошибка: забыть END в конце блока CASE.
🐛 Типичные ошибки
Забыт END в CASE
Неверно: CASE WHEN x > 0 THEN 'yes' ELSE 'no'
Верно: CASE WHEN x > 0 THEN 'yes' ELSE 'no' END
IF в PostgreSQL
Функция IF(a, b, c) есть только в MySQL. Для переносимых запросов используйте CASE.
Алиас с пробелом без кавычек
Неверно: AS price category
Верно: AS price_category или AS `price category`
Применение функций к NULL
Большинство функций возвращают NULL, если хотя бы один аргумент NULL. Используйте COALESCE для подстановки значения.
Смешение AND/OR
Для сложных условий внутри WHEN применяйте скобки.