Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.
NULLIF
Accepte deux arguments et renvoie une valeur NULL s'ils sont égaux ; sinon, le premier argument est renvoyé.
La fonction
NULLIFest équivalente àCASE WHEN expression1 = expression2 THEN NULL ELSE expression1 END
NULLIFest utile avec des fonctions d'agrégation telles queAVG,MAX,MIN,SUMetCOUNT, lorsque le jeu de résultats contient des valeurs spéciales qui ne sont pasNULL, mais que vous souhaitez traiter commeNULLpour les besoins de l'agrégation.
Voir aussi :
[SELECT] [COALESCE] [IFNULL]
Syntaxe
SELECT NULLIF(expression1, expression2) FROM <multipartIdentifier>;
Arguments
expression
Deux expressions de n'importe quel type de données, dont l'évaluation donne une valeur NULL ou non NULL.
La fonction
NULLIFparcourt ses arguments de gauche à droite à la recherche d'un argument qui définit une fonction de collation et utilise cette fonction de collation pour toutes les comparaisons de chaînes de caractères. Si aucun des deux arguments ne définit de fonction de collation, la collationBINARYest utilisée.
Valeur(s) renvoyée(s)
Renvoie NULL si l'évaluation des deux arguments expression donne la même valeur ; sinon, la première valeur est renvoyée.
Exemples
Compter les enregistrements dont un champ est différent d'une valeur donnée
SELECT COUNT(NULLIF(name, 'controller-0'))
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
/*
equivalent to:
SELECT COUNT(*) FROM google.compute.instances
WHERE name != 'controller-0';
*/
Pour plus d'informations, consultez https://www.sqlite.org/lang_corefunc.html#nullif