IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Select, union, éliminer des résultats.


Sujet :

MS SQL Server

  1. #1
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut Select, union, éliminer des résultats.
    Salut,

    Mon titre n'est malheureusement pas très clair. Et je sais déjà que j'aurais du mal à rédiger ce post!

    J'ai donc ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -- représentation : 
     CHAMPS1    CHAMPS2 
    ---------  ---------
       'O'       null
       'N'       null
       'N'     'valeur1'
    Je veux obtenir un seul résultat:
    1 - si CHAMPS1 = 'O' retourner 'texte 1'
    2 - si CHAMPS1 = 'N' et CHAMPS2 = null retourner 'texte 2'
    3 - si CHAMPS1 = 'N' et CHAMPS2 = 'valeur1' retourner 'valeur1'

    Ceci représente 3 select avec des union. Mon Pb est dans le cas 3 qui me retourne 2 résultats 'texte2' et 'valeur1'.
    Comment faire pour que cela ne retourne que le cas 3 si j'ai deux résultats?

    Me fais-je bien comprendre?

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 44
    Points
    44
    Par défaut
    slt,

    comprend pas bien, mais a mon avis met le code de ta requete, ca pourrat aider.

  3. #3
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    select 
    	VAL1 = w.val1, 
    	VAL7 = val7, 
    	VAL8 = 'texte 1',
    	VAL9 = -2,
    	VAL10 
    from table1 w, table2 e
    where w.val1 = @mavar and val11 = 'N'
    union
    select 
    	VAL1 = w.val1, 
    	VAL7 = val7, 
    	VAL8 = 'texte 2',
    	VAL9 = -1,
    	VAL10 
    from table1 w, table2 e
    where w.val1 = @mavar and val11 = 'O'
    union
    select 
    	VAL1 = w.val1, 
    	VAL7 = val7, 
    	VAL8 = val8,
    	VAL9 = val9,
    	VAL10 
    from table1 w, table2 e, table3 wp
    where w.val1 = @mavar and e.val1 = w.val1 and e.val9 = wp.val9
    Ceci me renvoie 2 résultats contenant -1 et et VAL9. Ce qui est normal (cf. 1er post)! Mais je souhaite dans ce cas là retourner que VAL9.

    Je savais que j'aurais du mal à m'expliquer

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Je n'ai pas les syntaxes en tête, mais la réponse à ta question est probablement une combinaison d'un (ISNULL ou COALESCE) et d'un Case

    Donc regarde l'aide sur les deux fonctions et tu devrais trouver ton bonheur.
    Quand on sait quelle fonction il faut employer, l'aide est très utile, quand on ne connait pas son nom, là c'est beaucoup moins pratique.
    A+
    Soazig

  5. #5
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut et merci pour ta réponse très intéressante qui m'a bien aidé à résoudre mon pb. D'autant que ce que j'ai pu lire dans l'aide m'aidera à l'avenir.
    En fait, mon erreur ai que j'utilisais isnull au lieu de is null.
    Là ça marche, bête confusion!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Union] ordre des résultats
    Par spender dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/08/2008, 09h48
  2. Nommage des résultats d'un select
    Par Ze_Pepino dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/07/2008, 17h55
  3. Retourner le nom des tables lors d'un SELECT UNION
    Par freesurfer dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/10/2007, 18h28
  4. Réponses: 2
    Dernier message: 20/04/2007, 13h48
  5. [EJBQL] [EJB3] [Junit] Récupération des résultats d'un select
    Par nramariavelo dans le forum Java EE
    Réponses: 1
    Dernier message: 04/10/2006, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo