SQL + condition IF ?

Résolu/Fermé
Tipo - 26 nov. 2008 à 23:22
 Taka21 - 5 déc. 2016 à 15:21
Bonjour,

Je me pose une question.

Est-il possible de faire un test de condition de type IF... ELSE... dans une seule et même requête SQL ?

Je vais rechercher des valeurs à des dates précises et en fait un rapport pour obtenir certains taux.
Par contre, je ne dois pas être en mesure de faire ce genre de requêtes si une des valeurs équivaut à ZERO.
Division par zéro... ne doit pas être possible!

Je dois donc procéder à un test de la valeur avant de faire le rapport directement dans la requête SQL.

Est-ce que cela est possible ? ou dois-je absolument passer par deux requêtes différentes et m'occuper du rapport et de sa condition (aucune valeur = ZERO) à un niveau supérieur à SQL ?

Merci et bravo à celui qui pourra m'aider.


Tipo
A voir également:

4 réponses

Non ce n'est pas cela mon problème. Je présente un exemple :

J'ai une table BONBONS avec un ID, NOM, DATE.

L'ID est unique, le NOM défini un type de bonbon par exemple et la date, la date à laquelle j'ai ajouté le bonbon dans ma boite à bonbons.

Ce que je veux c'est savoir combien de bonbons "à la menthe" ont été mis dans ma boite en une semaine, il y a deux semaine et en une semaine, il y a une semaine. Donc 2 quantités en fait. Et je veux voir si il y a eu une augumentation, diminution ou aucun des deux d'ajout de bonbons dans cette boite.

Mais, je ne peux pas faire ce rapport lorsque l'ajout du bonbon = ZERO sinon ça revient à faire une division avec un ZERO et c'est faut.

(Je sais, dans mon exemple on les mets dans la boite, mais c'est pour le bien des dents)
7
J'ai pas bien compris ton problème mais il me semble que faire
SELECT * FROM table WHERE date is not 0; devrait convenir

ca me parait trop simple pour que ce soit ce que tu veux.
1
Je dois donc d'abord faire un contrôle pour savoir si la quantité d'ajout de bonbon = ZERO.
En cas de réussite, je fais le rapport, sinon je fais autre chose.

Un IF, ELSE en quelque sorte dans une requête SQL.
0
mais la tu fais une soustraction. Je vois pas de division ?
0
ok c'est bon je vois la division...
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
26 nov. 2008 à 23:59
Tu peux faire des IF en SQL :
https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html

Honnêtement, je pencherait plus pour le faire dans un langage de plus haut niveau que SQL.
Mais ça doit être possible.
0
Tipo 26 nov 2008 à 23:52 
Comme bien souvent, je trouve réponse à mes questions tout seul [...]


Et tu ne remets pas en question l'utilité de tes questions ?
-4
Le c**, à comparer, est manifestement celui qui n'ose pas poser ses questions... de plus, Tipo26 partage ses réponses visiblement...
Dans ce contexte, Super, et sur un forum voué à l'entraide, c'est à priori peut- être l'utilité de tes commentaires déplacés (issus : soit d'une aigreur incontestable, soit d'un complexe de supériorité aigu, peu importe...) qu'il serait bon de remettre en question ? Non ? ;)
Bien entendu, je n'insisterai pas sur le fait, qu'ajouter à cela, tu réponds à un sujet de 2008 : Il était réellement temps que tu nous fasses partager ta science infuse!! lol
0
+1
Surtout que grâce à son sujet, sa réponse m'a bien aidée, même 3 ans plus tard !

Bonne journée
0
+1
Merci à Tipo pour sa question et sa réponse ! :)
0
oui vraiment merci ;)
0
et voila, 2013 . Je débute en sql. Je me pose la même question. Et je trouve une réponse.
Alors autant les gens qui se contentent d'un c'est bon j'ai trouvé sont énervants.

Autant ceux qui partagent leurs réponses font avancer les choses.
Merci d'avoir eut la gentillesse d'etre du bon coté.
0