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

  • 1
  • 2
  1. 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
  2. Fushiida
     
    Mais si le resultat n'est pas nul mais qu'il est = a 0, je remplace le "null" par 0 ?
    0
  3. fifi
     
    Si c'est 0 oui mais en general si la case n'est pas remplie, la valeur par défaut est NULL
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fifi
     
    Tu met ton instruction SELECT tavariable From tatable Where tavariable<>0;
    0
  7. 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
  8. 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
  9. 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
  10. 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
  11. Fushiida
     
    Oula dur dur ><, ma variable deux c'est celle qui doit indiquer le 0 ?
    0
  12. fifi
     
    Attends je m'y mets dessus je cherche la reponse et je te dis si je trouve :)
    0
  13. 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
  14. 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
  15. 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
  16. Fushiida
     
    J'ai oublier le case ^^', je test sa tout de suite, et je test aussi en sitant mes table
    0
  17. 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
  18. 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
  19. 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
  20. fifi
     
    Ben ecoute je comprends pas ça devrait marcher^^
    0
  • 1
  • 2