Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Alla skalära datatyper i Kusto har ett särskilt värde som representerar ett värde som saknas. Det här värdet kallas null-värdeteller null-.
Not
Datatypen string stöder inte null-värden.
Null-literaler
Null-värdet för en skalär typ T- representeras i frågespråket av null-literalen T(null).
Följande fråga returnerar en enskild rad full av null-värden:
print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)
Predikat för null-värden
Den skalära funktionen isnull() kan användas för att avgöra om ett skalärt värde är null-värdet. Motsvarande funktion isnotnull() kan användas för att avgöra om ett skalärt värde inte är null-värdet.
Not
Eftersom den string typen inte stöder null-värden rekommenderar vi att du använder isempty()- och isnotempty()-funktionerna.
Likhet och ojämlikhet i null-värden
-
Likhet (
==): Om likhetsoperatorn tillämpas på två null-värdenbool(null). Om likhetsoperatorn tillämpas på ett null-värde och ett värde som inte är null gerbool(false). -
Inequality (
!=): Att tillämpa ojämlikhetsoperatorn på två null-värden gerbool(null). Om du tillämpar ojämlikhetsoperatorn på ett null-värde och ett värde som inte är null ger detbool(true).
Till exempel:
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)
utdata
| val | IsBiggerThan3 | IsBiggerThan3OrNull | IsEqualToNull | IsNotequalToNull |
|---|---|---|---|---|
| 5 | sann | sann | falsk | sann |
| noll | noll | sann | noll | noll |
Null-värden och aggregeringsfunktioner
När du tillämpar följande operatorer på entiteter som innehåller null-värden ignoreras null-värdena och tar inte hänsyn till beräkningen:
- covariance()
- covarianceif()
- covariancep()
- covariancepif()
- dcount()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- sum()
- sumif()
- varians()
- variansif()
- variansp()
- variancepif()
Null-värden och operatorn where
Den där operatorn använda booleska uttryck för att avgöra om varje indatapost ska skickas till utdata. Den här operatorn behandlar null-värden som om de bool(false). Poster som predikatet returnerar null-värdet för tas bort och visas inte i utdata.
Till exempel:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
utdata
| ival | sval |
|---|---|
| noll | b |
Null-värden och binära operatorer
Binära operatorer är skalära operatorer som accepterar två skalära värden och skapar ett tredje värde. Till exempel är större än (>) och booleska AND (&&) binära operatorer.
För alla binära operatorer, förutom i Undantag till den här regeln, är regeln följande:
Om ett eller båda värdena som matas in till den binära operatorn är null-värden är utdata från den binära operatorn också null-värdet. Med andra ord är null-värdet "klibbigt".
Undantag till den här regeln
- För operatorerna likhet (
==) och ojämlikhet (!=) är ett av värdena null och det andra värdet inte är null, blir resultatet antingenbool(false)ellerbool(true). - För operatorn logiska AND (&&) är resultatet också
bool(false)om ett av värdena ärbool(false). - Om ett av värdena är
||för operatorn logisk OR (bool(true)) är resultatet ocksåbool(true).
Till exempel:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
utdata
| val | Addera | Multiplicera |
|---|---|---|
| 5 | 15 | 50 |
| noll | noll | noll |
Null-värden och operatorn logiska NOT (!)
Den logiska NOT-operatorn not() ger värdet bool(null) om argumentet är null-värdet.
Null-värden och operatorn in
- i operatorn fungerar som en logisk ELLER av likhetsjämförelser.
- Operatorn
!inbeter sig som en logiskANDav ojämlikhetsjämförelser.
Null-värden och datainmatning
För de flesta datatyper genererar ett värde som saknas i datakällan ett null-värde i motsvarande tabellcell. Kolumner av typen string- och CSV-liknande dataformat (eller CSV-liknande) är dock ett undantag från den här regeln, och ett värde som saknas skapar en tom sträng.
Till exempel:
.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)
utdata
| a | b | isnull_a | isempty_a | strlen_a | isnull_b |
|---|---|---|---|---|---|
| falsk | sann | 0 | sann | ||
| falsk | falsk | 1 | sann | ||
| a | 1 | falsk | falsk | 1 | falsk |
Not
- Om du kör ovanstående fråga i Kusto.Explorer visas alla
truevärden som1och allafalsevärden visas som0. - Kusto erbjuder inte ett sätt att hindra en tabells kolumn från att ha null-värden. Med andra ord finns det ingen motsvarighet till SQL:s
NOT NULLvillkor.
Not
Kusto erbjuder inte ett sätt att hindra en tabells kolumn från att ha null-värden. Med andra ord finns det ingen motsvarighet till SQL:s NOT NULL villkor.