Null-waarden
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 inbool(null)
. Het toepassen van de gelijkheidsoperator op een null-waarde en een niet-null-waarde resulteert inbool(false)
. -
Ongelijkheid (
!=
): Het toepassen van de ongelijkheidsoperator op twee null-waarden resulteert inbool(null)
. Het toepassen van de ongelijkheidsoperator op een null-waarde en een niet-null-waarde levertbool(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:
- aantal()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- sum()
- sumif()
- variantie()
- variantie()
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 respectievelijkbool(false)
ofbool(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 waardenbool(false)
is. - Als een van de waarden is
bool(true)
, wordt het resultaat ookbool(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 logischeAND
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 als1
en worden allefalse
waarden weergegeven als0
. - 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.