NULL und UNKNOWN (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
NULL
gibt an, dass der Wert unbekannt ist. Ein NULL-Wert unterscheidet sich von einem leeren Wert oder dem Wert Null (0). NULL-Werte sind niemals identisch. Vergleiche zwischen zwei Nullwerten oder zwischen einem Nullwert und einem anderen Wert geben unbekannt zurück, da der Wert der einzelnen NULL
Werte unbekannt ist.
Durch NULL-Werte werden grundsätzlich unbekannte, nicht anwendbare oder solche Daten angegeben, die später hinzugefügt werden. Die mittlere Initiale eines Kunden kann z. B. nicht bekannt sein, wenn der Kunde eine Bestellung abordnet.
Berücksichtigen Sie:
Verwenden Oder
IS NULL
IS NOT NULL
in derWHERE
Klausel, um auf Nullwerte in einer Abfrage zu testen.Sie können Nullwerte in eine Spalte einfügen, indem Sie explizit in einer
INSERT
Oder-AnweisungUPDATE
angebenNULL
oder eine Spalte aus einerINSERT
Anweisung verlassen.Nullwerte können nicht als Informationen verwendet werden, die erforderlich sind, um eine Zeile in einer Tabelle von einer anderen Zeile in einer Tabelle zu unterscheiden. Beispiele sind Primärschlüssel oder Informationen, die zum Verteilen von Zeilen verwendet werden, z. B. Verteilungsschlüssel.
Hinweise
Wenn Nullwerte in Daten vorhanden sind, können logische operatoren und Vergleichsoperatoren möglicherweise ein drittes Ergebnis anstelle von UNKNOWN
nur TRUE
oder FALSE
. Diese Notwendigkeit einer dreiwertigen Logik ist die Ursache für zahlreiche Anwendungsfehler. Logische Operatoren in einem booleschen Ausdruck, der die Rückgabe UNKNOWN
enthältUNKNOWN
, es sei denn, das Ergebnis des Operators hängt vom Ausdruck abUNKNOWN
. Die folgenden Tabellen enthalten Beispiele für dieses Verhalten.
Die folgende Tabelle zeigt die Ergebnisse des Anwendens eines AND
Operators auf zwei boolesche Ausdrücke, in denen ein Ausdruck zurückgegeben wird UNKNOWN
.
Ausdruck 1 | Ausdruck 2 | Ergebnis |
---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
Die folgende Tabelle zeigt die Ergebnisse des Anwendens eines OR
Operators auf zwei boolesche Ausdrücke, in denen ein Ausdruck zurückgegeben wird UNKNOWN
.
Ausdruck 1 | Ausdruck 2 | Ergebnis |
---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |