59 votes

Comment sélectionner la somme -ou- 0 si aucun enregistrement n’existe ?

Je dois écrire une requête qui renvoie la somme de toutes les valeurs qui répondent à un certain critère, mais la requête doit renvoyer 0 si aucune ligne n’est trouvée, plutôt que null. Par exemple:

Cette requête :

devrait, et fait, retourner `` . Toutefois:

devrait renvoyer , mais renvoie .

Quelqu’un peut-il expliquer si c’est possible?

135voto

Mike Christensen Points 29735

Que diriez-vous:

La fonction COALESCE dit essentiellement « renvoyer le premier paramètre, sauf s’il est nul, auquel cas renvoyer le deuxième paramètre » - C’est très pratique dans ces scénarios.

15voto

sesser Points 1118

Consultez la documentation MySQL pour IFNULL.

Bien sûr, cela suppose que votre champ est nullable et n’a pas de valeur par défaut. Une autre solution possible serait de définir une valeur par défaut pour le champ num, ce qui devrait résoudre le problème que vous rencontrez.

2voto

Thomas Kelley Points 4963

Cela fonctionne :

IF() prend trois paramètres : (1) Une instruction, (2) la valeur à appliquer si l’instruction est vraie, et (3) la valeur à appliquer si l’instruction est fausse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X