NOT IN
verhält sich nicht wie erwartet, wenn die In-Liste NULL
enthält Werte.
Wenn irgendwelche Werte NULL
sind , dann werden überhaupt keine Zeilen zurückgegeben. Denken Sie daran:In SQL NULL
bedeutet "unbestimmter" Wert, nicht "fehlender Wert". Wenn die Liste also NULL
enthält Wert, dann vielleicht gleich einem Vergleichswert sein.
Also customerid
muss NULL
sein in den orders
Tabelle.
Aus diesem Grund empfehle ich dringend, immer NOT EXISTS
zu verwenden mit einer Unterabfrage anstelle von NOT IN
.