Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2011, 11h48   #1
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
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
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 11h52   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Code :
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
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 12h02   #3
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
Je veux la chose suivante:
si param = 1 sélectionner col1 et col2
si param = 2 sélectionner col3
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 12h11   #4
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Code :
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
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/04/2011, 13h12   #5
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
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 :
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 :
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
...
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/04/2011, 16h09   #6
Membre régulier
 
Homme Tij SEL
Inscription : mars 2010
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Tij SEL
Localisation : Tunisie

Informations forums :
Inscription : mars 2010
Messages : 282
Points : 79
Points : 79
Merci
DeveloppeurWeb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web