Oracle-Tipp: Auswirkung von NULL-Werten auf IN und EXISTS

Es treten jedoch Probleme auf, wenn man die Logik umkehrt und NOT IN und NOT EXISTS verwendet, was unterschiedliche Ergebnismengen zurückgibt. Die erste Abfrage gibt keine Zeilen zurück, die zweite die gewünschten Daten. Diese Abfragen sind nicht identisch!

Die NOT IN-Klausel ist im Prinzip äquivalent zum Vergleichen jedes Wertes mithilfe von „=“, was fehlschlägt, wenn ein Test FALSE oder NULL ist. Ein Beispiel:

All diese Abfragen geben keine Zeilen zurück. Bei der zweiten ist dies am deutlichsten, denn 1 != NULL ergibt NULL, so dass die gesamte WHERE-Bedingung für diese Zeile falsch ist. Die folgenden Abfragen hingegen würden funktionieren:

Die obige NOT IN-Abfrage lässt sich durchaus verwenden, solange man sicherstellt, dass nicht NULL in den Ergebnissen zurückgegeben wird. Die folgenden beiden Abfragen funktionieren ebenfalls, allerdings unter der Voraussetzung, dass empno nicht NULL ist, was in diesem Fall wohl zutreffen dürfte:

Wer die Unterschiede zwischen IN, EXISTS, NOT IN und NOT EXISTS verstanden hat, kann viele Stolperfallen vermeiden, die sich beim Auftreten von NULL-Werten in den Daten einer Unterabfrage ergeben.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Google stopft weitere fünf Löcher in Chrome 128

Betroffen sind Chrome für Windows, macOS und Linux. Das von den Anfälligkeiten ausgehende Risiko stuft…

3 Tagen ago

Steuerstreit mit der EU: Apple muss 13 Milliarden Euro nachzahlen

Der Gerichtshof der Europäischen Union entscheidet „endgültig“ über den Rechtsstreit. Dem Urteil zufolge sind von…

4 Tagen ago

September-Patchday: Microsoft schließt kritische Zero-Day-Lücke in Windows Update

Sie betrifft ältere Versionen von Windows 10. Ein weiterer kritischer Bug steckt aber auch in…

4 Tagen ago

CloudEye für 18 Prozent aller Malware-Infektionen in Deutschland verantwortlich

Der Downloader nimmt Windows-Rechner ins Visier. RansomHub festigt seine Position als führende Ransomware-Gruppe weltweit.

4 Tagen ago

Funeral Scams: Neue perfide Online-Betrugsmasche auf Facebook

Britische Bestattungsunternehmen haben bereits reagiert und weisen darauf hin, dass ihre Beerdigungen nicht gelivestreamt werden.

5 Tagen ago

Apple stellt iPhone 16 und iPhone 16 Pro vor

Der neue Apple-Prozessor A18 basiert auf einem 3-Nanometer-Verfahren. Apple verspricht mehr Leistung und eine höhere…

5 Tagen ago