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

A voir également:

21 réponses

  • 1
  • 2
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
  • 1
  • 2