Partager via


Valeurs Null

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Tous les types de données scalaires dans Kusto ont une valeur spéciale qui représente une valeur manquante. Cette valeur est appelée valeur Null ou Null.

Remarque

Le string type de données ne prend pas en charge les valeurs Null.

Littéraux Null

La valeur Null d’un type scalaire T est représentée dans le langage de requête par le littéral T(null)Null .

La requête suivante retourne une seule ligne pleine de valeurs Null :

print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)

Prédicats sur les valeurs Null

La fonction isnull() scalaire peut être utilisée pour déterminer si une valeur scalaire est la valeur Null. La fonction isnotnull() correspondante peut être utilisée pour déterminer si une valeur scalaire n’est pas la valeur Null.

Remarque

Étant donné que le string type ne prend pas en charge les valeurs Null, nous vous recommandons d’utiliser les fonctions et les isempty() isnotempty() fonctions.

Égalité et inégalité des valeurs Null

  • Égalité (==) : L’application de l’opérateur d’égalité à deux valeurs Null génère bool(null). L’application de l’opérateur d’égalité à une valeur Null et d’une valeur non Null génère bool(false).
  • Inégalité (!=) : L’application de l’opérateur d’inégalité à deux valeurs Null génère bool(null). L’application de l’opérateur d’inégalité à une valeur Null et d’une valeur non Null génère bool(true).

Par exemple :

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)

Sortie

val IsBiggerThan3 IsBiggerThan3OrNull IsEqualToNull IsNotEqualToNull
5 true true false true
null null true null null

Valeurs null et fonctions d’agrégation

Lorsque vous appliquez les opérateurs suivants aux entités qui incluent des valeurs Null, les valeurs Null sont ignorées et ne sont pas prises en compte dans le calcul :

Valeurs Null et where opérateur

Opérateur où l’opérateur utilise des expressions booléennes pour déterminer s’il faut émettre chaque enregistrement d’entrée dans la sortie. Cet opérateur traite les valeurs Null comme si elles sont bool(false). Enregistrements pour lesquels le prédicat retourne la valeur Null sont supprimés et n’apparaissent pas dans la sortie.

Par exemple :

datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5

Sortie

ival sval
null b

Valeurs Null et opérateurs binaires

Les opérateurs binaires sont des opérateurs scalaires qui acceptent deux valeurs scalaires et produisent une troisième valeur. Par exemple, supérieur à (>) et Boolean AND (&) sont des opérateurs binaires.

Pour tous les opérateurs binaires, à l’exception des exceptions à cette règle, la règle est la suivante :

Si une ou les deux valeurs entrées dans l’opérateur binaire sont des valeurs Null, la sortie de l’opérateur binaire est également la valeur Null. En d’autres termes, la valeur null est « sticky ».

Exceptions à cette règle

  • Pour les opérateurs d’égalité (==) et d’inégalité (!=), si l’une des valeurs est null et que l’autre valeur n’est pas null, le résultat est soit bool(false) ou bool(true), respectivement.
  • Pour l’opérateur AND logique (&), si l’une des valeurs est bool(false), le résultat est également bool(false).
  • Pour l’opérateur OR (||) logique, si l’une des valeurs est bool(true), le résultat est également bool(true).

Par exemple :

datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10

Sortie

val Ajouter Multiplier
5 15 50
null null null

Valeurs Null et opérateur NOT (!) logique

L’opérateur NOT logique not() génère la valeur bool(null) si l’argument est la valeur Null.

Valeurs Null et in opérateur

  • L’opérateur in se comporte comme une or logique de comparaisons d’égalité.
  • L’opérateur !in se comporte comme une logique AND de comparaisons d’inégalités.

Valeurs null et ingestion des données

Pour la plupart des types de données, une valeur manquante dans la source de données produit une valeur Null dans la cellule de table correspondante. Toutefois, les colonnes de type string et de formats de données CSV (ou de type CSV) sont une exception à cette règle, et une valeur manquante produit une chaîne vide.

Par exemple :

.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)

Sortie

a b isnull_a isempty_a strlen_a isnull_b
    false true 0 true
    false false 1 true
a 1 false false 1 false

Remarque

  • Si vous exécutez la requête ci-dessus dans Kusto.Explorer, toutes les true valeurs sont affichées en tant que 1, et toutes les false valeurs sont affichées en tant que 0.
  • Kusto n’offre pas de moyen de limiter la colonne d’une table à l’utilisation de valeurs Null. En d’autres termes, il n’existe aucun équivalent à la contrainte de NOT NULL SQL.

Remarque

Kusto n’offre pas de moyen de limiter la colonne d’une table à l’utilisation de valeurs Null. En d’autres termes, il n’existe aucun équivalent à la contrainte de NOT NULL SQL.