Dela via


NULL och UNKNOWN (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

NULL anger att värdet är okänt. Ett null-värde skiljer sig från ett tomt eller nollvärde. Inga två null-värden är lika med. Jämförelser mellan två null-värden, eller mellan ett null-värde och ett annat värde, returnerar okänt eftersom värdet för var NULL och en är okänt.

Null-värden anger vanligtvis data som är okända, inte tillämpliga eller som ska läggas till senare. En kunds mellan initial kanske inte är känd när kunden lägger en beställning.

Consider:

  • Om du vill testa null-värden i en fråga använder IS NULL du eller IS NOT NULL i WHERE -satsen.

  • Du kan infoga null-värden i en kolumn genom att uttryckligen ange NULL i en INSERT -instruktion UPDATE eller genom att lämna en kolumn i en INSERT instruktion.

  • Null-värden kan inte användas som information som krävs för att skilja en rad i en tabell från en annan rad i en tabell. Exempel är primära nycklar eller information som används för att distribuera rader, till exempel distributionsnycklar.

Remarks

När null-värden finns i data kan logiska operatorer och jämförelseoperatorer potentiellt returnera ett tredje resultat i UNKNOWN stället för bara TRUE eller FALSE. Det här behovet av trevärdeslogik är en källa till många programfel. Logiska operatorer i ett booleskt uttryck som innehåller UNKNOWN retur UNKNOWN, såvida inte resultatet av operatorn inte är beroende UNKNOWN av uttrycket. De här tabellerna innehåller exempel på det här beteendet.

Följande tabell visar resultatet av att tillämpa en AND operator på två booleska uttryck där ett uttryck returnerar UNKNOWN.

Expression 1 Expression 2 Result
TRUE UNKNOWN UNKNOWN
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN FALSE

Följande tabell visar resultatet av att tillämpa en OR operator på två booleska uttryck där ett uttryck returnerar UNKNOWN.

Expression 1 Expression 2 Result
TRUE UNKNOWN TRUE
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN UNKNOWN