Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Všechny skalární datové typy v Kusto mají speciální hodnotu, která představuje chybějící hodnotu. Tato hodnota se nazývá hodnota null nebo null.
Poznámka:
Datový string typ nepodporuje hodnoty null.
Literály null
Hodnota null skalárního typu T je reprezentována v dotazovacím jazyce literálem T(null)null .
Následující dotaz vrátí jeden řádek plný hodnot null:
print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)
Predikáty hodnot null
Skalární funkci isnull() lze použít k určení, jestli skalární hodnota je hodnota null. Odpovídající funkci isnotnull() lze použít k určení, jestli skalární hodnota není hodnotou null.
Poznámka:
string Vzhledem k tomu, že typ nepodporuje hodnoty null, doporučujeme použít isempty() funkce a funkceisnotempty().
Rovnost a nerovnost hodnot null
-
Rovnost (
==): Použití operátoru rovnosti na dvě hodnoty null je výsledkembool(null). Použití operátoru rovnosti na hodnotu null a nenulová hodnota je výsledkembool(false). -
Nerovnost (
!=): Použití operátoru nerovnosti na dvě hodnoty null přinášíbool(null). Použití operátoru nerovnosti na hodnotu null a nenulová hodnota je výnos .bool(true)
Příklad:
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)
Výstup
| Val | IsBiggerThan3 | IsBiggerThan3OrNull | IsEqualToNull | IsNotEqualToNull |
|---|---|---|---|---|
| 5 | pravda | pravda | false (nepravda) | pravda |
| null | null | pravda | null | null |
Hodnoty null a agregační funkce
Při použití následujících operátorů u entit, které obsahují hodnoty null, se hodnoty null ignorují a nefaktorují do výpočtu:
- kovariance()
- kovarianceif()
- kovariance()
- kovariancepif()
- dcount()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- sum()
- sumif()
- variance()
- varianceif()
- rozptylu
- variancepif()
Hodnoty null a where operátor
Operátor where používá logické výrazy k určení, zda má každý vstupní záznam generovat do výstupu. Tento operátor považuje hodnoty null za předpokladu, že jsou bool(false). Záznamy, pro které predikát vrátí hodnotu null, se zahodí a ve výstupu se nezobrazí.
Příklad:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
Výstup
| ival | sval |
|---|---|
| null | b |
Hodnoty null a binární operátory
Binární operátory jsou skalární operátory, které přijímají dvě skalární hodnoty a vytvářejí třetí hodnotu. Například operátory greater-than (>) a Boolean AND (&&) jsou binární operátory.
Pro všechny binární operátory s výjimkou výjimek tohoto pravidla je toto pravidlo následující:
Pokud jedna nebo obě hodnoty vstupní do binárního operátoru mají hodnoty null, je výstupem binárního operátoru také hodnota null. Jinými slovy, hodnota null je "sticky".
Výjimky tohoto pravidla
- Pro operátory rovnosti () a nerovnosti (
==!=) je-li jedna z hodnot null a druhá hodnota není null, výsledek je buďbool(false)nebobool(true), v uvedeném pořadí. - Pro logický operátor AND (&&) je-li jedna z hodnot
bool(false), výsledek je takébool(false). - Pro logický operátor OR (
||) je-li jedna z hodnotbool(true), výsledek je takébool(true).
Příklad:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
Výstup
| Val | Přidání | Krát |
|---|---|---|
| 5 | 15 | 50 |
| null | null | null |
Hodnoty null a logický operátor NOT (!)
Logický operátor NOT ne() vrátí hodnotu bool(null) , pokud je argument hodnotou null.
Hodnoty null a in operátor
- Operátor in se chová jako logický operátor OR porovnání rovnosti.
- Operátor
!inse chová jako logickáANDporovnání nerovnosti.
Hodnoty null a příjem dat
U většiny datových typů chybějící hodnota ve zdroji dat vytvoří hodnotu null v odpovídající buňce tabulky. Sloupce datových formátů typu string a CSV (nebo podobné csv) jsou však výjimkou tohoto pravidla a chybějící hodnota vytvoří prázdný řetězec.
Příklad:
.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)
Výstup
| d | b | isnull_a | isempty_a | strlen_a | isnull_b |
|---|---|---|---|---|---|
| false (nepravda) | pravda | 0 | pravda | ||
| false (nepravda) | false (nepravda) | 0 | pravda | ||
| d | 0 | false (nepravda) | false (nepravda) | 0 | false (nepravda) |
Poznámka:
- Pokud spustíte výše uvedený dotaz v Kusto.Exploreru, zobrazí se všechny
truehodnoty jako1a všechnyfalsehodnoty se zobrazí jako0. - Kusto nenabízí způsob, jak omezit sloupec tabulky, aby měl hodnoty null. Jinými slovy, neexistuje žádný ekvivalent omezení SQL
NOT NULL.
Poznámka:
Kusto nenabízí způsob, jak omezit sloupec tabulky, aby měl hodnoty null. Jinými slovy, neexistuje žádný ekvivalent omezení SQL NOT NULL .