NULLIF и IIF
Часть раздела Продвинутый уровень путешествия по SQL на Coddy. Урок 4 из 27.
Ещё два условных вспомогательных средства — оба небольшие и полезные.
NULLIF(a, b) возвращает NULL, когда a = b, в противном случае — a. Классический вариант использования — защита от деления на ноль:
SELECT total / NULLIF(count, 0) AS average
FROM statsЕсли count равен нулю, мы получаем NULL вместо ошибки.
IIF(cond, a, b) — это сокращённая запись с двумя ветвями для CASE WHEN cond THEN a ELSE b END. Используй её, когда выбор бинарный; используй CASE, когда ветвей больше.
Задание
ЛегкоДоступные таблицы и столбцы:
matches:id,shots,goals
Для каждого матча верните:
idconversion:goals * 1.0 / shots, ноNULL, когдаshotsравно0(используйтеNULLIF)verdict:'win', когдаgoals > 0, в противном случае'no goals'(используйтеIIF)
Отсортируйте по id.
Попробуйте сами
SELECT id,
-- преобразование с использованием NULLIF
-- вердикт с использованием IIF
FROM matches
ORDER BY id
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Продвинутый уровень
Потренируйтесь самостоятельно: Песочница SQL