Выбор ответа Junior SELECT и фильтрация спрашивают часто обновлено

Сравнение с NULL через =

Вопрос

В таблице customers у двух клиентов email равен NULL. Сколько строк вернёт запрос?

SELECT * FROM customers WHERE email = NULL;

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 0. Любое сравнение с NULL через = даёт NULL (unknown), а WHERE пропускает только строки, где условие true.

Варианты ответа

  1. 2
  2. 0правильный ответ
  3. Все строки таблицы
  4. Ошибку синтаксиса

Разбор

Любое сравнение с NULL через = даёт NULL (unknown), а WHERE пропускает только строки, где условие true. Поэтому строк не будет ни одной. Синтаксической ошибки нет, запрос корректный, просто бесполезный. Правильно: WHERE email IS NULL.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.