в чем разница в селекте с not null и без?
ссылка на задачку: https://www.sql-ex.ru/learn_exercises.php#answer_ref
решение:
select name from battles
where datepart(year,date) not in
(select launched from ships
join classes on classes.class = ships.class
where launched is not null
union
select launched from ships
join outcomes on ships.name = outcomes.ship
where launched is not null)
вопрос: почему без (is not null) не проходит проверку?
что происходит когда мы сравниваем например: дата not in (и тут null)?
Ответы (1 шт):
Автор решения: душитель питона
→ Ссылка
Нашел ссылку на статью про null в where not in на английском
https://www.polderknowledge.nl/2018/03/02/sql-beware-null-where-not/
Если вкратце то нельзя сравнивать с null т.к сравнение с null всегда возвращает null. Поэтому в where not in нужно сравнивать только с not null.