Aracılığıyla paylaş


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 verir bool(null). Eşitlik işlecini bir null değere ve null olmayan bir değere uygulamak döndürür bool(false).
  • Eşitsizlik (!=): Eşitsizlik işlecinin iki null değere uygulanması sonucunu verir bool(null). Eşitsizlik işlecini bir null değere, null olmayan bir değer ise uygular bool(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:

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 veya bool(true)olurbool(false).
  • Mantıksal AND (&&) işleci için değerlerden bool(false)biri ise sonuç da bool(false)olur.
  • Mantıksal OR (||) işleci için, değerlerden biri ise bool(true)sonuç da bool(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ıksal AND 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 olarak 1ve tüm false değerler olarak 0gö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.