есть такой запрос для примера:
select *
from (select 1 as ls union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8) as ls
where ls.ls in (
select 1 union select 5 union select null
)
Результат: выборка с двумя строками
если мы ставим not в условие
select *
from (select 1 as ls union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8) as ls
where not ls.ls in (
select 1 union select 5 union select null
)
то результат пустой
вот не понятна немного как работает mssql с этим встречающимся null в подзапросе, может кто-то может объяснить двумя словами?