Null-waarden
Alle scalaire gegevenstypen in Kusto hebben een speciale waarde die een ontbrekende waarde vertegenwoordigt. Deze waarde wordt de null-waarde of null genoemd.
Notitie
Het string
gegevenstype biedt geen ondersteuning voor null-waarden.
Letterlijke null-waarde
De null-waarde van het scalaire type T wordt in de querytaal weergegeven met de letterlijke null-waarde 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 op 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 ondersteuning biedt voor null-waarden, raden we u aan de isempty()
functies en isnotempty()
te gebruiken.
Gelijkheid en ongelijkheid van null-waarden
- Gelijkheid (
==
): het toepassen van de gelijkheidsoperator op twee null-waarden levert opbool(null)
. Het toepassen van de gelijkheidsoperator op een null-waarde en een niet-null-waarde levert opbool(false)
. - Ongelijkheid (
!=
): Het toepassen van de operator ongelijkheid op twee null-waarden levert opbool(null)
. Het toepassen van de operator ongelijkheid op een null-waarde en een niet-null-waarde levert opbool(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 | true | waar | onjuist | true |
null | null | true | null | null |
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:
- count()
- count_distinct()
- countif()
- dcount()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- sum()
- sumif()
- variantie()
- varianceif()
Null-waarden en de where
operator
De operator where gebruikt Booleaanse expressies om te bepalen of elke invoerrecord naar de uitvoer moet worden verzonden. Met deze operator worden null-waarden behandeld alsof ze zijn bool(false)
. Records waarvan 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 |
---|---|
null | b |
Null-waarden en binaire operatoren
Binaire operators zijn scalaire operatoren die twee scalaire waarden accepteren en een derde waarde produceren. Groter dan (>) en Booleaanse AND (&&) zijn bijvoorbeeld binaire operatoren.
Voor alle binaire operators, behalve zoals vermeld in Uitzonderingen op deze regel, is de regel als volgt:
Als een of beide waarden die worden ingevoerd 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
- Als voor de operators gelijkheid (
==
) en ongelijkheid (!=
) een van de waarden null is en de andere waarde niet null, isbool(false)
het resultaat respectievelijk ofbool(true)
. - Als een van de waarden voor de logische AND-operator (&&) is
bool(false)
, is het resultaat ookbool(false)
. - Als een van de waarden voor de logische OPERATOR OF (
||
) isbool(true)
, is het resultaat ookbool(true)
.
Bijvoorbeeld:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
Uitvoer
Val | Toevoegen | Vermenigvuldigen |
---|---|---|
5 | 15 | 50 |
null | null | null |
Null-waarden en de logische OPERATOR NOT (!
)
De logische NOT-operator not() levert de waarde bool(null)
op als het argument de null-waarde is.
Null-waarden en de in
operator
- De operator in gedraagt zich als een logische OF van gelijkheidsvergelijkingen.
- De
!in
operator gedraagt zich als een logische vanAND
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-achtige (of CSV-achtige) gegevensindelingen vormen 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 |
---|---|---|---|---|---|
onjuist | true | 0 | waar | ||
onjuist | false | 1 | true | ||
een | 1 | onjuist | false | 1 | onjuist |
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 te voorkomen dat de kolom van een tabel null-waarden bevat. Met andere woorden, er is geen equivalent aan de beperking van
NOT NULL
SQL.
Notitie
Kusto biedt geen manier om te voorkomen dat de kolom van een tabel null-waarden bevat. Met andere woorden, er is geen equivalent aan de beperking van NOT NULL
SQL.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor