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

Langage SQL Discussion :

case/when avec plusieurs valeurs pour le then


Sujet :

Langage SQL

  1. #1
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut case/when avec plusieurs valeurs pour le then
    Bonjour,

    est ce qu'il y a un moyen d'avoir un case/when/then mais avec plusieurs valeurs de retour ?

    Je m'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    case
      when id is not null then val1,val2
    end
    Merci
    "Don't think you are, know you are..." (Morpheus)

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Salut SQLpro,

    Citation Envoyé par SQLpro
    ça je sais faire (c'est un case/when classique). Moi ce que je veux c'est afficher deux champs (ou plus) si une condition est vérifiée. En d'autre termes, au lieu d'avoir case...when...then 1 je voudrais avoir case...when...then 1,2

    @+
    "Don't think you are, know you are..." (Morpheus)

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Tu as essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
           CASE 
           WHEN COL_X IS NOT NULL  THEN val1
           ELSE 'ELSE...'
           END,
           CASE
           WHEN COL_X IS NOT NULL  THEN val2
           ELSE 'ELSE...'
           END
    FROM   MYTABLE
    Si ça ne correspond pas à ce que tu veux, dis nous en un peu plus sur tes motivations, ton SGBD, etc.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Il faut les enchaîner !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    rebonjour,

    ma question est simple: je voulais savoir si je peux afficher plusieurs colonnes à la suite d'un then, dans un case/when. A priori c'est pas possible parce que j'ai trouvé null part un exemple là dessus, et dans la doc de Sybase ils n'en parlent pas.

    Considérons le cas suivant:

    J'ai une table qui contient les champs id, nom et prenom. Je fais un case/when, et si la condition est true alors je voudrais afficher les colonnes nom et prenom:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    case
       when condition then nom, prenom
       else "vide", "vide
    end
    Bien évidemment je peux avoir le même résultat de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    case
       when condition then nom
       else "vide"
    end
    case
       when condition then prenom
       else "vide"
    end
    Mais ça devient vite génant s'il y a plusieurs champs à afficher.

    Voilà !
    "Don't think you are, know you are..." (Morpheus)

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    alors faire une union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT ...
    FROM
    WHERE Condition1
    UNION
    SELECT ...
    FROM
    WHERE Condition2
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Merci pour ta réponse mais ca ne m'arrange parce que ca fait trop agrandir la requête, et ce sera du copier/coller 10 fois à peu près (pour 10 champs) !!

    Donc si c'est pas possible comme j'ai demandé, c'est pas grave. C'était juste à titre d'infos, j'ai déjà contourné le problème avec plusieurs cas/when...
    "Don't think you are, know you are..." (Morpheus)

Discussions similaires

  1. [XL-2010] Aide pour finaliser une rechercheV avec plusieurs valeurs
    Par roadruner dans le forum Excel
    Réponses: 3
    Dernier message: 12/07/2012, 22h42
  2. Switch case avec plusieurs valeurs par cas
    Par Med_be dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 07/04/2011, 13h16
  3. Plusieurs valeurs pour une case à cocher
    Par maestro982 dans le forum Langage
    Réponses: 15
    Dernier message: 10/05/2010, 23h49
  4. Utilisation CASE WHEN avec une liste de valeurs
    Par mortimer.pw dans le forum PL/SQL
    Réponses: 5
    Dernier message: 26/03/2009, 12h50
  5. Conteneur avec plusieurs clés pour une valeur
    Par insomniak dans le forum C++
    Réponses: 6
    Dernier message: 15/10/2006, 18h18

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