Aide pour un IF en SQL si = 0 On n'affiche pa

Fushiida -  
 Fushiida -
Bonjour,

Alors voila j'aurai aimer savoir comment on peut formuler en sql"SI la casse est vide, alors on ne l'affiche pas" Merci d'avance

21 réponses

oliv0852
 
Le if s'exprime avec un CASE when ... then ... else ... end as "renomme ta colonne"

-> exemple :
SELECT nom, prenom, CASE when justifier is null
then 'Jamais absent(e)'
end as "Absences"
FROM etudiants;
0
Fushiida
 
Mais si le resultat n'est pas nul mais qu'il est = a 0, je remplace le "null" par 0 ?
0
fifi
 
Si c'est 0 oui mais en general si la case n'est pas remplie, la valeur par défaut est NULL
0
Fushiida
 
Enfaite elle est remplie, mais quand elle est a 0 je ne veut rien afficher

Et je ne veut pas afficher autre chose a la place, mais ne pas l'afficher
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fifi
 
Tu met ton instruction SELECT tavariable From tatable Where tavariable<>0;
0
Fushiida
 
Je test sa tout de suite J'ai ce code

SELECT * FROM player.item,player.item_proto,site.bonus,site.bonus2 WHERE player.item.vnum = player.item_proto.vnum AND  
   

   
 player.item.attrtype0 = site.bonus.vnum_bonus AND  
 player.item.attrtype1 = site.bonus.vnum_bonus AND  
 player.item.attrtype2 = site.bonus.vnum_bonus AND  
 player.item.owner_id =  36023  


Mes lignes sont répéter plusieurs fois en doublon, comment je peut résoudre sa ?

Merci pour les réponse rapides

Avez vous Skype sinon ?
0
fifi
 
Pour les doublons tu mets DISTINCT(tavariable) dans le select.
ex : SELECT DISTINCT(tavariable1), tavariable2 ...
Cet exemple supprime les doublons de variable1 mais pas de la variable 2 , mais ça marche pareil si tu veux le faire pour la 2 aussi.

Pas de problème :)
0
Fushiida
 
J'ai éditer mon post précédent
La fonction tavariable<>0 ne m'affiche plus du tout ma requette, hors moi je veut qu'elle s'affiche, mais qu'elle ne lise pas le 0

yurima.fr/Newww/index.php?p=inventaire2

Vous comprendrez mieux
0
fifi
 
Ah oui d'accord !
Tu dois imbriquer une requete dans une autre.

je reprends mon exemple:

select distinct(tavariable1), tavariable2
from tatable
where tavariable2<>(SELECT tavariable2 From tatable Where tavariable2<>0);

C'est mieux?

Enfin pour le coup je n'en suis pas sur
0
Fushiida
 
Oula dur dur ><, ma variable deux c'est celle qui doit indiquer le 0 ?
0
fifi
 
Attends je m'y mets dessus je cherche la reponse et je te dis si je trouve :)
0
Fushiida
 
Oki pas de problème un grand merci
0
fifi
 
C'est bon.
select nom, case when prenom='Paul' then '' else prenom end
from etudiants

c'est un exemple mais pour toi le 0 sera a la place de 'Paul'.

c'est bien ça que tu veux??

(Ce qui est après then c'est deux apostrophes l'une a la suite de l'autre sans espace)
0
Fushiida
 
A quoi sert le "else prenom end " ?

ET sa m'affiche une erreur

Erreur SQL !
SELECT * WHEN attrtype0='0' then '' else attrtype0 FROM 


J'ai fait ceci comme requette

	$requette2 = ("SELECT * WHEN attrtype0='0' then '' else attrtype0 FROM player.item,player.item_proto,site.bonus,site.bonus2,site.bonus3,site.bonus4,site.bonus5,site.bonus6,site.bonus7,site.stat,site.stat2 WHERE player.item.vnum = player.item_proto.vnum AND
	
	player.item_proto.applytype0 = site.stat.vnum_bonus AND
	player.item_proto.applytype1 = site.stat2.vnum_bonus AND
	
	player.item.attrtype0 = site.bonus.vnum_bonus AND
	player.item.attrtype1 = site.bonus2.vnum_bonus AND
	player.item.attrtype2 = site.bonus3.vnum_bonus AND
	player.item.attrtype3 = site.bonus4.vnum_bonus AND
	player.item.attrtype4 = site.bonus5.vnum_bonus AND
	player.item.attrtype5 = site.bonus6.vnum_bonus AND
	player.item.attrtype6 = site.bonus7.vnum_bonus AND
	player.item.owner_id =  36023  "); 
0
fifi
 
tu dois pas mettre le *, tu dois séparer les varaiables pour pouvoir mettre uniquement la variable qui t'interesse dans le case. De plus tu n'as pas mis le "case"?

Dans mon cas le else prenom sert a dire que si ce n'est pas Paul, afficher la variable prenom non-modifiée. et le end c'est pour terminer le case.
0
Fushiida
 
J'ai oublier le case ^^', je test sa tout de suite, et je test aussi en sitant mes table
0
Fushiida
 
Toujours erreur SQL, ce coup si j'ai marquer ceci

SELECT
player.item.attrtype0,
player.item.attrvalue0,
player.item.attrtype1,
player.item.attrvalue1,
player.item.attrtype2,
player.item.attrvalue2,
player.item.attrtype3,
player.item.attrvalue3,
player.item.attrtype4,
player.item.attrvalue4,
player.item.attrtype5,
player.item.attrvalue5,
player.item.attrtype6,
player.item.attrvalue6,
player.item_proto.locale_name,
site.bonus4.traduction4,
site.bonus5.traduction5,
site.bonus6.traduction6,
site.bonus7.traduction7,
site.stat.traduction_stat,
site.stat2.traduction_stat2,
site.bonus2.traduction2,
site.bonus.traduction,
site.bonus3.traduction3,
player.item_proto.applytype0,
player.item_proto.applyvalue0,
player.item_proto.applytype1,
player.item_proto.applyvalue1		CASE WHEN attrtype0='0' then '' ELSE prenom END 
FROM player.item,player.item_proto,site.bonus,site.bonus2,site.bonus3,site.bonus4,site.bonus5,site.bonus6,site.bonus7,site.stat,site.stat2
WHERE player.item.vnum = player.item_proto.vnum AND
	
	player.item_proto.applytype0 = site.stat.vnum_bonus AND
	player.item_proto.applytype1 = site.stat2.vnum_bonus AND
	
	player.item.attrtype0 = site.bonus.vnum_bonus AND
	player.item.attrtype1 = site.bonus2.vnum_bonus AND
	player.item.attrtype2 = site.bonus3.vnum_bonus AND
	player.item.attrtype3 = site.bonus4.vnum_bonus AND
	player.item.attrtype4 = site.bonus5.vnum_bonus AND
	player.item.attrtype5 = site.bonus6.vnum_bonus AND
	player.item.attrtype6 = site.bonus7.vnum_bonus AND
	player.item.owner_id =  36023


Les
attrtype0
attrtype1
attrtype2
attrtype3
attrtype4
attrtype5
attrtype6

si il sont a 0 il ne s'affiche pas
0
fifi
 
Oui il y a plusieurs erreurs. D'une il faut une virgule avant ton case .
ensuite il faut que tu fasses un case pour chaque attrtype.
et ensuite "prenom" il faut que tu le remplace par "attrtype0" pour le 1 er cas, par "attrtype1" pour le second etc...
0
Fushiida
 
Oui j'ai vue mes erreur et je les est corriger, mais le 0 s'affiche toujours

player.item_proto.applyvalue1,CASE WHEN attrtype0='0' THEN '' ELSE attrtype0  END 


Ou il existe pas une fonction pour dire, si attrtype0 = 0 alors il est null ?
0
fifi
 
Ben ecoute je comprends pas ça devrait marcher^^
0