SQL: Один NULL в списке, и NOT IN возвращает ноль строк
WHERE id NOT IN (1, 2, NULL) раскрывается в id <> 1 AND id <> 2 AND id <> NULL. Последнее сравнение всегда даёт UNKNOWN, а WHERE пропускает только TRUE, поэтому запрос молча возвращает пустой результат. Одно неизвестное значение отравляет весь фильтр. Если в подзапросе возможен NULL, бери NOT EXISTS: он на NULL не ломается и читается понятнее, чем костыль с IS NOT NULL.
#sql #deathnote
9
2
1August 28, 2026 1K 3 12