Delen via


Null-waarden

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Alle scalaire gegevenstypen in Kusto hebben een speciale waarde die een ontbrekende waarde vertegenwoordigt. Deze waarde wordt de null-waardeof null-genoemd.

Notitie

Het string gegevenstype biedt geen ondersteuning voor null-waarden.

Null-letterlijke waarden

De null-waarde van een scalaire T- wordt weergegeven in de querytaal door de letterlijke waarde null T(null).

De volgende query retourneert één rij vol null-waarden:

print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)

Predicaten voor null-waarden

De scalaire functie isnull() kan worden gebruikt om te bepalen of een scalaire waarde de null-waarde is. De bijbehorende functie isnotnull() kan worden gebruikt om te bepalen of een scalaire waarde niet de null-waarde is.

Notitie

Omdat het string-type geen null-waarden ondersteunt, raden we u aan de isempty() en de isnotempty()-functies te gebruiken.

Gelijkheid en ongelijkheid van null-waarden

  • Gelijkheid (==): Het toepassen van de gelijkheidsoperator op twee null-waarden resulteert in bool(null). Het toepassen van de gelijkheidsoperator op een null-waarde en een niet-null-waarde resulteert in bool(false).
  • Ongelijkheid (!=): Het toepassen van de ongelijkheidsoperator op twee null-waarden resulteert in bool(null). Het toepassen van de ongelijkheidsoperator op een null-waarde en een niet-null-waarde levert bool(true).

Bijvoorbeeld:

datatable(val:int)[5, int(null)]
| extend IsBiggerThan3 = val > 3
| extend IsBiggerThan3OrNull = val > 3 or isnull(val)
| extend IsEqualToNull = val == int(null)
| extend IsNotEqualToNull = val != int(null)

uitvoer

Val IsBiggerThan3 IsBiggerThan3OrNull IsEqualToNull IsNotEqualToNull
5 waar waar vals waar
nul nul waar nul nul

Null-waarden en aggregatiefuncties

Wanneer u de volgende operators toepast op entiteiten die null-waarden bevatten, worden de null-waarden genegeerd en worden deze niet meegenomen in de berekening:

Null-waarden en de operator where

De waar de operator booleaanse expressies gebruiken om te bepalen of elke invoerrecord naar de uitvoer moet worden verzonden. Deze operator behandelt null-waarden alsof ze bool(false)zijn. Records waarvoor het predicaat de null-waarde retourneert, worden verwijderd en worden niet weergegeven in de uitvoer.

Bijvoorbeeld:

datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5

uitvoer

ival sval
nul b

Null-waarden en binaire operatoren

Binaire operators zijn scalaire operators die twee scalaire waarden accepteren en een derde waarde produceren. Zo zijn groter dan (>) en Booleaanse en (&&) binaire operatoren.

Voor alle binaire operatoren, behalve zoals vermeld in Uitzonderingen op deze regel, is de regel als volgt:

Als een of beide waarden invoer voor de binaire operator null-waarden zijn, is de uitvoer van de binaire operator ook de null-waarde. Met andere woorden, de null-waarde is 'plakkerig'.

Uitzonderingen op deze regel

  • Voor de operatoren gelijkheid (==) en ongelijkheid (!=), is het resultaat respectievelijk bool(false) of bool(true)als een van de waarden null is en de andere waarde niet null is.
  • Voor de logische AND-operator (&&) wordt het resultaat ook bool(false)als een van de waarden bool(false)is.
  • Als een van de waarden is bool(true), wordt het resultaat ook bool(true)voor de logische OPERATOR OF (||).

Bijvoorbeeld:

datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10

uitvoer

Val Toevoegen Vermenigvuldigen
5 15 50
nul nul nul

Null-waarden en de logische operator NOT (!)

De logische OPERATOR NOT not() geeft de waarde bool(null) als het argument de null-waarde is.

Null-waarden en de operator in

  • De in operator gedraagt zich als een logische OR van gelijkheidsvergelijkingen.
  • De operator !in gedraagt zich als een logische AND van ongelijkheidsvergelijkingen.

Null-waarden en gegevensopname

Voor de meeste gegevenstypen produceert een ontbrekende waarde in de gegevensbron een null-waarde in de bijbehorende tabelcel. Kolommen van het type string en CSV-gegevensindelingen (of CSV-achtige) zijn echter een uitzondering op deze regel en een ontbrekende waarde produceert een lege tekenreeks.

Bijvoorbeeld:

.create table T(a:string, b:int)

.ingest inline into table T
[,]
[ , ]
[a,1]

T
| project a, b, isnull_a=isnull(a), isempty_a=isempty(a), stlen_a=strlen(a), isnull_b=isnull(b)

uitvoer

een b isnull_a isempty_a strlen_a isnull_b
    vals waar 0 waar
    vals vals 1 waar
een 1 vals vals 1 vals

Notitie

  • Als u de bovenstaande query uitvoert in Kusto.Explorer, worden alle true waarden weergegeven als 1en worden alle false waarden weergegeven als 0.
  • Kusto biedt geen manier om de kolom van een tabel te beperken tot null-waarden. Met andere woorden, er is geen equivalent aan de NOT NULL beperking van SQL.

Notitie

Kusto biedt geen manier om de kolom van een tabel te beperken tot null-waarden. Met andere woorden, er is geen equivalent aan de NOT NULL beperking van SQL.