Salut à tous
Est-il possible en Sql Oracle (10g) de récupérer (dans le select) la valeur d'un champ à partir de son nom ?
Exemple (ultra simplifié, donc, ici sans sens fonctionnel) :
Une table A dont les colonnes sont (id, champ1, champ2).
Une table B dont les colonnes sont (id, nom_champ).
Où id est la clé commune (relation 1..n entre A et B).
Où B.nom_champ (varchar) contiendra soit la chaine 'A.champ1', soit 'A.champ2' (voyez que cela correspond au nom de colonne de la table A)
Les données dans les tables :
A
--------------------------------
- id - champ1 - champ2 -
--------------------------------
- 1 - 10 - 20 -
- 2 - 50 - 60 -
--------------------------------
B
-------------------------
- id - nom_champ -
-------------------------
- 1 - 'A.champ1' -
-------------------------
La requête est :
select A.id, B.nom_champ
from A, B
where A.id=B.id
Le résultat est :
1, 'A.champ1'
Mais en fait je voudrai valoriser le 'A.champ1' qui correspond à une valeur de la table A.
Comment adapter ma requête ? Y a-til un valueOf ou quelque chose de ce genre ?
select A.id, valueOf(B.nom_champ)
from A, B
where A.id=B.id
Le résultat souhaité serait :
1, 10
En espérant avoir bien décrit mon besoin.
D'avance merci
Partager