Aller au contenu principal
Page traduite

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 NULLIF est équivalente à CASE WHEN expression1 = expression2 THEN NULL ELSE expression1 END

NULLIF est utile avec des fonctions d'agrégation telles que AVG, MAX, MIN, SUM et COUNT, lorsque le jeu de résultats contient des valeurs spéciales qui ne sont pas NULL, mais que vous souhaitez traiter comme NULL pour 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 NULLIF parcourt 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 collation BINARY est 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