NULL values inside NOT IN clause
Query A is the same as: select ‘true’ where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null Since 3 = 3 is true, you get a result. Query B is the same as: select ‘true’ where 3 <> 1 and 3 <> 2 and 3 <> null When … Read more
Query A is the same as: select ‘true’ where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null Since 3 = 3 is true, you get a result. Query B is the same as: select ‘true’ where 3 <> 1 and 3 <> 2 and 3 <> null When … Read more
I always default to NOT EXISTS. The execution plans may be the same at the moment but if either column is altered in the future to allow NULLs the NOT IN version will need to do more work (even if no NULLs are actually present in the data) and the semantics of NOT IN if … Read more