Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2007, 11h33   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 13
Points : 1
Points : 1
Par défaut Comment éviter un résultat NULL ?

Bonjour,

Je fais une requête du style :
select val1-val2 as 'val' from table

Mais si jamais val1=NULL ou val2=NULL, j'obtiens alors NULL pour la variable val, alors que je souhaiterai avoir :
- si val1=NULL, alors val=-val2
- si val2=NULL, alors val=val1

Est-ce possible à faire ?

Merci d'avance.

Delphine
dpin33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 11h46   #2
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Tu peux utiliser CASE WHEN pour tester tes variables

Code :
1
2
3
4
5
6
7
SELECT 
CASE 
WHEN VAL1 IS NULL THEN -VAL2 
WHEN VAL2 IS NULL THEN VAL1
ELSE VALEUR_PAR_DEFAUT
END
FROM TA_TABLE
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 12h47   #3
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
Ou bien l'utilisation des if :
Code :
1
2
3
4
5
 
SELECT 
IF(val_1 IS NULL, val_2, val_1),
IF(val_2 IS NULL, val_1, val_2)
FROM TA_TABLE
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 12h53   #4
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
Bonjour,

Go pour le troll, je propose la fonction IFNULL :

Code :
SELECT IFNULL(VAL1,0)-IFNULL(VAL2,0) FROM TA_TABLE
__________________
Pensez au tag
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 13h49   #5
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
Citation:
Envoyé par Adjanakis Voir le message
Bonjour,

Go pour le troll, je propose la fonction IFNULL :

Code :
SELECT IFNULL(VAL1,0)-IFNULL(VAL2,0) FROM TA_TABLE

+1
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 14h17   #6
Invité de passage
 
Inscription : octobre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 13
Points : 1
Points : 1
Merci beaucoup pour vos réponses !
J'ai adopté le IFNULL qui est plus concis.

Delphine
dpin33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h58.


 
 
 
 
Partenaires

Hébergement Web