Postgres остановит деление на ноль, а выражение с NULL выполнит без ошибки. Итог при этом может не совпасть с вопросом, который разработчик задал базе.
NULL означает «неизвестно»: сравнение с ним тоже даёт неизвестность, а WHERE оставляет только истину. Поэтому
phone = NULL не найдёт строки без телефона: нужна проверка IS NULL. NULL в NOT IN тоже может отбросить всю выдачу.Разбор NULL в фильтрах, арифметике, агрегатах и соединениях объясняет, когда использовать
IS NULL, NOT EXISTS и COALESCE.
