Null değerler
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini✅ Azure İzleyici✅Microsoft Sentinel
Kusto'daki tüm skaler veri türleri, eksik bir 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ğerler
T türündeki bir skaler 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ğerlerle ilgili 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 (
==
): eşitlik işlecini iki null değere uygulamak sonucunu verirbool(null)
. Eşitlik işlecini null bir 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 null bir değere ve null olmayan bir değere uygulamak döndürürbool(true)
.
Örneğin:
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)
Çıktı
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ı hesaba katmaz:
- 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()
- varyans()
- varianceif()
Null değerler ve where
işleç
where işleci, her giriş kaydının çıkışa yayılıp yayılmadığı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.
Örneğin:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
Çıktı
ival | sval |
---|---|
boş | 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ç için 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, diğer değer null değilse sonuç sırasıyla veyabool(true)
olurbool(false)
. - Mantıksal AND (&) işleci için değerlerden biri ise
bool(false)
sonuç dabool(false)
olur. - Mantıksal OR (
||
) işleci için değerlerden biri isebool(true)
sonuç dabool(true)
olur.
Örneğin:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
Çıktı
Val | Ekle | Çarpma |
---|---|---|
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 özel durum oluşturur ve eksik bir değer boş bir dize oluşturur.
Örneğin:
.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)
Çıktı
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
görüntülenir 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.