Maison  >  Article  >  base de données  >  Comment gérez-vous les valeurs nulles dans la fonction SUM de MySQL avec COALESCE ?

Comment gérez-vous les valeurs nulles dans la fonction SUM de MySQL avec COALESCE ?

DDD
DDDoriginal
2024-11-02 08:47:29676parcourir

How do you handle null values in MySQL's SUM function with COALESCE?

Comment gérer les valeurs nulles dans la fonction SUM de MySQL avec COALESCE

Lors de l'exécution de calculs SUM dans MySQL, il peut être difficile de gérer des scénarios dans lesquels aucune valeur ne répond aux critères spécifiés, ce qui entraîne une sortie NULL. Pour résoudre ce problème, MySQL fournit la fonction COALESCE, qui offre un moyen pratique de spécifier une valeur de retour par défaut en cas de valeurs NULL.

Considérez la fonction MySQL suivante :

SELECT SUM(Column_1)
FROM Table
WHERE Column_2 = 'Test'

Si aucune entrée dans Column_2 ne contient le texte « Test », cette fonction renverra NULL. Cependant, dans certains cas, il est préférable de renvoyer 0 au lieu de NULL lorsqu'aucune valeur n'est trouvée.

Pour y parvenir, nous pouvons utiliser la fonction COALESCE dans le calcul SUM, comme démontré ci-dessous :

SELECT COALESCE(SUM(column),0)
FROM   table
WHERE  ...

En spécifiant 0 comme valeur par défaut dans la fonction COALESCE, nous remplaçons efficacement toutes les valeurs NULL dans le calcul SUM par 0, garantissant que le résultat est toujours un entier (même si aucune valeur ne répond aux critères SUM).

Informations supplémentaires

La fonction COALESCE est polyvalente et peut être utilisée dans divers scénarios au-delà de la gestion des valeurs NULL dans les calculs de somme. Il est particulièrement utile dans les situations où vous devez fournir une valeur de secours pour les données manquantes ou incomplètes.

Pour illustrer davantage l'utilisation et les avantages de COALESCE, considérez les exemples de tableaux suivants avec différents types de données :

  • foo : contient à la fois des nombres et des valeurs NULL
  • bar : contient uniquement des nombres non nuls
  • baz : contient uniquement des valeurs NULL

Utilisation du Fonction COALESCE dans une requête qui calcule la somme des valeurs de ces tables, nous pouvons garantir des résultats cohérents malgré la présence de valeurs nulles :

SELECT  'foo'                   as table_name,
        'mixed null/non-null'   as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    foo
UNION ALL

SELECT  'bar'                   as table_name,
        'all non-null'          as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    bar
UNION ALL

SELECT  'baz'                   as table_name,
        'all null'              as description,
        0                       as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    baz

Les résultats de cette requête seront les suivants :

TABLE_NAME DESCRIPTION EXPECTED_SUM ACTUAL_SUM
foo mixed null/non-null 21 21
bar all non-null 21 21
baz all null 0 0

Comme le montrent les résultats, COALESCE garantit que le calcul SUM renvoie toujours 0 pour la table baz, où toutes les valeurs sont NULL, et fournit la somme attendue de 21 pour les tables foo et bar.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn