NOT IN
não se comporta como esperado quando a lista contém NULL
valores. Na verdade, se algum valor for
NULL
, nenhuma linha será retornada. Lembre-se:em SQL, NULL
significa valor "indeterminado", não "valor ausente". Portanto, se a lista contiver qualquer NULL
valor então poderia ser igual a um valor de comparação. Então,
customerid
deve ser NULL
nos orders
tabela. Por esse motivo, recomendo fortemente que você sempre use
NOT EXISTS
com uma subconsulta em vez de NOT IN
.