Null değerler
Kusto'daki tüm skaler veri türleri, eksik değeri temsil eden özel bir değere sahiptir. Bu değer null veya null olarak adlandırılır.
Not
Veri string
türü null değerleri desteklemez.
Null değişmez değerleri
Skaler T türünün null değeri, sorgu dilinde null değişmez değeriyle T(null)
temsil edilir.
Aşağıdaki sorgu null değerlerle dolu tek bir satır döndürür:
print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)
Null değerlerdeki koşul
Skaler işlevi isnull()
, skaler değerin null değer olup olmadığını belirlemek için kullanılabilir. Karşılık gelen işlev isnotnull()
, skaler değerin null değer olup olmadığını belirlemek için kullanılabilir.
Not
string
Tür null değerleri desteklemediğinden ve isnotempty()
işlevlerini kullanmanızı isempty()
öneririz.
Null değerlerin eşitliği ve eşitsizliği
- Eşitlik (
==
): İki null değere eşitlik işlecinin uygulanması sonucunu verirbool(null)
. Eşitlik işlecini bir null değere ve null olmayan bir değere uygulamak döndürürbool(false)
. - Eşitsizlik (
!=
): Eşitsizlik işlecinin iki null değere uygulanması sonucunu verirbool(null)
. Eşitsizlik işlecini bir null değere, null olmayan bir değer ise uygularbool(true)
.
Örnek:
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)
Çıkış
Val | IsBiggerThan3 | IsBiggerThan3OrNull | IsEqualToNull | IsNotEqualToNull |
---|---|---|---|---|
5 | true | true | yanlış | true |
null | null | true | null | null |
Null değerler ve toplama işlevleri
Null değerler içeren varlıklara aşağıdaki işleçler uygulanırken, null değerler yoksayılır ve hesaplamayı dikkate almaz:
- 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()
- variance()
- varianceif()
Null değerler ve where
işleç
where işleci, her giriş kaydının çıkışa yayılıp yaylmadığını belirlemek için Boole ifadelerini kullanır. Bu işleç null değerleri olduğu bool(false)
gibi değerlendirir. Koşulun null değeri döndürdüğü kayıtlar bırakılır ve çıkışta görünmez.
Örnek:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
Çıkış
ival | sval |
---|---|
null | b |
Null değerler ve ikili işleçler
İkili işleçler, iki skaler değeri kabul eden ve üçüncü bir değer üreten skaler işleçlerdir. Örneğin, büyüktür (>) ve Boole AND (&&) ikili işleçlerdir.
Bu kuralın özel durumları bölümünde belirtilenler dışında tüm ikili işleçler için kural aşağıdaki gibidir:
İkili işleçe giriş yapılan değerlerden biri veya her ikisi de null değerlerse, ikili işlecin çıkışı da null değerdir. Başka bir deyişle, null değer "yapışkan" olur.
Bu kuralın özel durumları
- Eşitlik (
==
) ve eşitsizlik (!=
) işleçleri için, değerlerden biri null ise ve diğer değer null değilse, sonuç sırasıyla veyabool(true)
olurbool(false)
. - Mantıksal AND (&&) işleci için değerlerden
bool(false)
biri ise sonuç dabool(false)
olur. - Mantıksal OR (
||
) işleci için, değerlerden biri isebool(true)
sonuç dabool(true)
olur.
Örnek:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
Çıkış
Val | Ekle | Çarp |
---|---|---|
5 | 15 | 50 |
null | null | null |
Null değerler ve mantıksal NOT (!
) işleci
Bağımsız değişken null değersebool(null)
, mantıksal NOT işleci not() değeri verir.
Null değerler ve in
işleç
- in işleci, mantıksal veya eşitlik karşılaştırmaları gibi davranır.
!in
işleci, eşitsizlik karşılaştırmalarının mantıksalAND
bir örneği gibi davranır.
Null değerler ve veri alımı
Çoğu veri türü için, veri kaynağındaki eksik bir değer karşılık gelen tablo hücresinde null değer üretir. Ancak, tür string
ve CSV (veya CSV benzeri) veri biçimlerinden oluşan sütunlar bu kural için bir özel durumdur ve eksik bir değer boş bir dize üretir.
Örnek:
.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)
Çıkış
a | b | isnull_a | isempty_a | strlen_a | isnull_b |
---|---|---|---|---|---|
yanlış | true | 0 | true | ||
yanlış | yanlış | 1 | true | ||
a | 1 | yanlış | yanlış | 1 | yanlış |
Not
- Yukarıdaki sorguyu Kusto.Explorer'da çalıştırırsanız, tüm
true
değerler olarak1
ve tümfalse
değerler olarak0
görüntülenir. - Kusto, tablo sütununu null değerlere sahip olmaktan kısıtlamak için bir yol sunmaz. Başka bir deyişle, SQL kısıtlamasının eşdeğeri
NOT NULL
yoktur.
Not
Kusto, tablo sütununu null değerlere sahip olmaktan kısıtlamak için bir yol sunmaz. Başka bir deyişle, SQL kısıtlamasının eşdeğeri NOT NULL
yoktur.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin