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

SQL Oracle Discussion :

Choix de colonnes suivant paramètre


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2010
    Messages : 366
    Points : 121
    Points
    121
    Par défaut Choix de colonnes suivant paramètre
    Bonjour,
    J'ai une table qui comprend 8 colonnes
    Je veux faire un SQL dans le quel je choisie les colonnes à afficher suivant un paramètre
    Merci

  2. #2
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select case when :param = 1 then col1
                when :param = 2 then col2
                when :param = 3 then col3
                else null end as "Col a afficher"
    from table

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2010
    Messages : 366
    Points : 121
    Points
    121
    Par défaut
    Je veux la chose suivante:
    si param = 1 sélectionner col1 et col2
    si param = 2 sélectionner col3

  4. #4
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT case when :param = 1 then to_char(col1)||to_char(col2)
                when :param = 2 then col3
                else NULL end AS "Col a afficher"
    FROM TABLE

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    c'est un manque de compréhension de sql que de vouloir un nombre dynamique de colonne!

    soit la soluce ojo en concaténant l'output (mais c'est pas vraiment 2 colonnes).


    Ou éventuellement une soluce dégueu à la sauce sqlplus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> col n new_v n
    SQL> select decode(&param,1,'ename',2,'ename,sal','*') n from dual;
    Enter value for param: 1
    N
    -----
    ename
    SQL> select &n from emp;
    ENAME
    ----------
    SMITH
    ALLEN
    WARD
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> col n new_v n
    SQL> select decode(&param,1,'ename',2,'ename,sal','*') n from dual;
    Enter value for param: 2
    N
    ---------
    ename,sal
    SQL> select &n from emp;
    ENAME             SAL
    ---------- ----------
    SMITH             800
    ALLEN            1600
    WARD             1250
    ...

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mars 2010
    Messages : 366
    Points : 121
    Points
    121
    Par défaut
    Merci

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

Discussions similaires

  1. Cacher des colonnes suivant plusieurs choix
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/01/2011, 16h54
  2. [XL-2002] Cacher des colonnes suivant un choix
    Par tchoutchou69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/01/2011, 10h32
  3. paramètres avec choix de colonnes
    Par kitty2006 dans le forum SAP
    Réponses: 1
    Dernier message: 03/04/2008, 17h21
  4. [CR9]Masquer des données (colonnes) suivant valeur champ
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 05/09/2005, 09h43
  5. Passer le nom de colonne en paramètre d'une procédure stocké
    Par theartist dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/01/2005, 15h39

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