← К оглавлению занятия

Занятие 05. Условные конструкции: операторы CASE, IF

📁 Блок: SQL / MySQL ⏱️ Время изучения: ~60 мин 🎯 Сложность: Начальная
#case #if #as #concat #left #right #substring #length #trim #replace #upper #lower #coalesce

⚡ Кратко: суть темы

Занятие учит создавать новые столбцы на основе условий. Разбираем оператор 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 применяйте скобки.