NOT IN
gedraagt zich niet zoals verwacht wanneer de in-lijst NULL
. bevat waarden.
In feite, als er waarden NULL
zijn , dan worden er helemaal geen rijen geretourneerd. Onthoud:In SQL, NULL
betekent "onbepaalde" waarde, niet "ontbrekende waarde". Dus als de lijst NULL
. bevat waarde, dan misschien gelijk zijn aan een vergelijkingswaarde.
Dus, customerid
moet NULL
zijn in de orders
tafel.
Om deze reden raad ik u ten zeerste aan om altijd NOT EXISTS
. te gebruiken met een subquery in plaats van NOT IN
.