Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Alle skalaren Datentypen in Kusto weisen einen speziellen Wert auf, der einen fehlenden Wert darstellt. Dieser Wert wird als Nullwert oder NULL bezeichnet.
Hinweis
Der string Datentyp unterstützt keine NULL-Werte.
NULL-Literale
Der Nullwert eines skalaren Typs T wird in der Abfragesprache durch das Nullliteral T(null)dargestellt.
Die folgende Abfrage gibt eine einzelne Zeile mit Nullwerten zurück:
print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)
Prädikate für Nullwerte
Die Skalarfunktion isnull() kann verwendet werden, um zu bestimmen, ob ein Skalarwert der Nullwert ist. Die entsprechende Funktion isnotnull() kann verwendet werden, um zu bestimmen, ob ein skalarer Wert nicht der Nullwert ist.
Hinweis
Da der string Typ keine NULL-Werte unterstützt, empfehlen wir die Verwendung der isempty() Funktionen und der isnotempty() Funktionen.
Gleichheit und Ungleichheit von Nullwerten
-
Gleichheit (
==): Das Anwenden des Gleichheitsoperatorsbool(null)auf zwei Nullwerte führt zu einer Zeichenfolge. Das Anwenden des Gleichheitsoperatorsbool(false)auf einen Nullwert und einen Wert ungleich Null führt zu einer Zeichenfolge. -
Ungleichheit (
!=): Das Anwenden des Ungleichheitsoperators auf zwei Nullwerte führt zu einer Ergibtbool(null). Das Anwenden des Ungleichheitsoperators auf einen Nullwert und einen Wert ungleich Null führt zu einer Ausbeutebool(true).
Zum Beispiel:
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)
Ausgabe
| Val | IsBiggerThan3 | IsBiggerThan3OrNull | IsEqualToNull | IsNotEqualToNull |
|---|---|---|---|---|
| 5 | Wahr | Wahr | Falsch | Wahr |
| NULL | NULL | Wahr | NULL | NULL |
Nullwerte und Aggregationsfunktionen
Wenn Sie die folgenden Operatoren auf Entitäten anwenden, die Nullwerte enthalten, werden die Nullwerte ignoriert und nicht in die Berechnung einbezogen:
- Kovarianz()
- kovarianzif()
- kovarianzp()
- kovariancepif()
- dcount()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- summe()
- sumif()
- Varianz()
- varianzif()
- Varianzp()
- variancepif()
Nullwerte und der where Operator
Der Operator verwendet boolesche Ausdrücke, um zu bestimmen, ob jeder Eingabedatensatz an die Ausgabe ausgegeben werden soll. Dieser Operator behandelt NULL-Werte, als ob sie sich befinden bool(false). Datensätze, für die das Prädikat den Nullwert zurückgibt, werden verworfen und werden nicht in der Ausgabe angezeigt.
Zum Beispiel:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
Ausgabe
| ival | sval |
|---|---|
| NULL | b |
Nullwerte und binäre Operatoren
Binäre Operatoren sind skalare Operatoren, die zwei skalare Werte akzeptieren und einen dritten Wert erzeugen. Beispielsweise sind größer als (>) und boolesche UND (&&)-Operatoren binäre Operatoren.
Für alle binären Operatoren, mit Ausnahme der Ausnahmen von dieser Regel, lautet die Regel wie folgt:
Wenn eine oder beide Werte, die an den binären Operator eingegeben werden, NULL-Werte sind, ist die Ausgabe des Binären Operators auch der Nullwert. Mit anderen Worten, der Nullwert ist "sticky".
Ausnahmen von dieser Regel
- Bei den Gleichheits- (
==) und Ungleichheitsoperatoren (!=) ist einer der Werte null und der andere Wert nicht null, dann ist das Ergebnis entwederbool(false)oderbool(true), bzw. - Für den logischen AND (&&&)-Operator, wenn einer der Werte lautet
bool(false), ist das Ergebnis ebenfallsbool(false). - Für den logischen OR (
||) -Operator, wenn einer der Werte istbool(true), ist das Ergebnis auchbool(true).
Zum Beispiel:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
Ausgabe
| Val | Add (Hinzufügen) | Multiplizieren |
|---|---|---|
| 5 | 15 | 50 |
| NULL | NULL | NULL |
Nullwerte und der logische NOT(!)-Operator
Der logische NOT-Operator , wenn das Argument der NULL-Wert ist.
Nullwerte und der in Operator
- Der In-Operator verhält sich wie ein logisches ODER von Gleichheitsvergleichen.
- Der
!inOperator verhält sich wie ein logischerANDUngleichheitsvergleich.
Nullwerte und Datenaufnahme
Für die meisten Datentypen erzeugt ein fehlender Wert in der Datenquelle einen NULL-Wert in der entsprechenden Tabellenzelle. Spalten vom Typ string und CSV-Format (oder CSV-ähnliche) Datenformate sind jedoch eine Ausnahme von dieser Regel, und ein fehlender Wert erzeugt eine leere Zeichenfolge.
Zum Beispiel:
.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)
Ausgabe
| ein | b | isnull_a | isempty_a | strlen_a | isnull_b |
|---|---|---|---|---|---|
| Falsch | Wahr | 0 | Wahr | ||
| Falsch | Falsch | 1 | Wahr | ||
| ein | 1 | Falsch | Falsch | 1 | Falsch |
Hinweis
- Wenn Sie die obige Abfrage in Kusto.Explorer ausführen, werden alle
trueWerte als angezeigt1, und allefalseWerte werden als0angezeigt. - Kusto bietet keine Möglichkeit, die Spalte einer Tabelle auf null-Werte zu beschränken. Mit anderen Worten, es gibt keine Entsprechung mit der Einschränkung von
NOT NULLSQL.
Hinweis
Kusto bietet keine Möglichkeit, die Spalte einer Tabelle auf null-Werte zu beschränken. Mit anderen Worten, es gibt keine Entsprechung mit der Einschränkung von NOT NULL SQL.