Delen via


NULL en ONBEKEND (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

NULL geeft aan dat de waarde onbekend is. Een null-waarde verschilt van een lege of nulwaarde. Er zijn geen twee null-waarden gelijk. Vergelijkingen tussen twee null-waarden, of tussen een null-waarde en een andere waarde, retourneren onbekend omdat de waarde van elke NULL waarde onbekend is.

Null-waarden geven over het algemeen gegevens aan die onbekend, niet van toepassing zijn of later moeten worden toegevoegd. De middelste initial van een klant is bijvoorbeeld mogelijk niet bekend op het moment dat de klant een bestelling plaatst.

Consider:

  • Als u wilt testen op null-waarden in een query, gebruikt IS NULL of IS NOT NULL in de WHERE component.

  • U kunt null-waarden in een kolom invoegen door expliciet in een INSERT of-instructie UPDATE op te geven NULL of door een kolom uit een INSERT instructie te laten.

  • Null-waarden kunnen niet worden gebruikt als informatie die vereist is om één rij in een tabel te onderscheiden van een andere rij in een tabel. Voorbeelden hiervan zijn primaire sleutels of voor informatie die wordt gebruikt voor het distribueren van rijen, zoals distributiesleutels.

Remarks

Wanneer null-waarden aanwezig zijn in gegevens, kunnen logische operatoren en vergelijkingsoperatoren mogelijk een derde resultaat retourneren van UNKNOWN in plaats van alleen TRUE of FALSE. Deze behoefte aan logica met drie waarden is een bron van veel toepassingsfouten. Logische operators in een Boole-expressie die return UNKNOWNbevatUNKNOWN, tenzij het resultaat van de operator niet afhankelijk is van de UNKNOWN expressie. Deze tabellen bieden voorbeelden van dit gedrag.

In de volgende tabel ziet u de resultaten van het toepassen van een AND operator op twee Boole-expressies waarbij één expressie wordt geretourneerd UNKNOWN.

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

In de volgende tabel ziet u de resultaten van het toepassen van een OR operator op twee Boole-expressies waarbij één expressie wordt geretourneerd UNKNOWN.

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