Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

NULL-Prädikat (Vergleich auf NULL-Wert)

Es wird geprüft, ob ein Ausdruck den NULL-Wert enthält.


operand IS [NOT] NULL

operand ::= ausdruck



operand

Operand für den Vergleich. Der Wert von operand muss entweder einfach sein oder der Name einer multiplen Spalte. Ist der Operand eine multiple Spalte, darf die Spaltenangabe keine Außenreferenz, also nicht Spalte eines übergeordneten Abfrage-Ausdrucks sein.


Ergebnis

operand einfach:

Ohne NOT:

Wahr, wenn der Wert von operand der NULL-Wert ist.

Falsch, sonst.

Mit NOT:

Wahr, wenn der Wert von operand nicht der NULL-Wert ist.

Falsch, sonst.


operand multiple Spalte:

Ohne NOT:

Wahr, wenn mindestens eine Ausprägung der multiplen Spalte der NULL-Wert ist.

Falsch, sonst.

Mit NOT:

Wahr, wenn mindestens eine Ausprägung der multiplen Spalte nicht der NULL-Wert ist.

Falsch, sonst.


Beispiele

sprache1 IS NOT NULL

SPRACHE1 im Beispiel ist eine einfache Spalte. Enthält SPRACHE1 keinen NULL-Wert, dann ergibt der Vergleich wahr. Der Vergleich NOT sprache1 IS NULL liefert in diesem Fall denselben Wahrheitswert.

SPRACHE2(1..5) ist eine multiple Spalte, die nur in einigen, aber nicht in allen Spalten den NULL-Wert enthält. Der Vergleich sprache2(1..5) IS NOT NULL ergibt in diesem Fall wahr, während NOT (sprache(1..5) IS NULL) den Wahrheitswert falsch ergibt.

spalte IS NOT NULL und NOT (spalte IS NULL) sind also nicht äquivalent, wenn spalte eine multiple Spalte ist. Dies wird deutlich, wenn man sprache2(1..5) IS NOT NULL darstellt als:

sprache2(1) IS NOT NULL OR sprache2(2) IS NOT NULL OR ...

sprache2(5) IS NOT NULL

Der Vergleich ergibt wahr, falls mindestens eine Ausprägung von SPRACHE2 ungleich NULL ist.

NOT (sprache(1..5) IS NULL) lässt sich dagegen darstellen als:

NOT (sprache(1) IS NULL OR sprache(2) IS NULL ... OR sprache(5) IS NULL)

Dieser Vergleich ergibt wahr, wenn die Vergleiche auf den NULL-Wert in der Klammer nach NOT falsch ergeben, d.h. falls alle Ausprägungen von SPRACHE2 ungleich NULL sind.


Aus der Tabelle AUFTRAG die Aufträge mit Auftragstext und Soll-Termin heraussuchen, die noch nicht fertiggestellt sind, d.h. für die der Ist-Termin der NULL-Wert ist.

SELECT anr, atext, fertigsoll FROM auftrag WHERE fertigist IS NULL
   anr  atext                   fertigsoll
   250  Serienbrief-Einweisung  <date>
   251  Kunden-Verwaltung       <date>
   300  Netzwerk-Test/Vergleich
   305  Mitarbeiterschulung     <date>