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

NULLgibt 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 der WHERE 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-Anweisung UPDATE angeben NULL oder eine Spalte aus einer INSERT 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 UNKNOWNenthä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