2016-10-14 1 views
0

vous connaissez la fonction ou d'une procédure dans l'oracle qui me permettrait ce qui suit:Donnez-moi et nom_colonne column_value

TABLE Clients 
COLUMN id, name, vlag 


columnname column_value     
id   1   
name  Jon   
flag  M   


columnname column_value     
id   2   
name  Jessica   
flag  F  
+0

Votre question n'est pas très claire. –

+0

Exemple mes clients de table avec l'ID et le nom des colonnes. s'il y a une fonction dans l'oracle qui prendrait ce format pour un identifiant donné exemple, sélectionnez * de clients donner ce résultat « id nom 1 jon 2 jessica » J'ai besoin des colonnes make (en-têtes) aux lignes et colonnes pour imprimer le nom de la colonne - Colonne de valeur – nAPL

+2

@APC - On appelle cela unpivoting non pivotant –

Répondre

0

essayer. Mais je dirais que c'est ineffecient

select 'id' as column_name, id as column_value from table 
union all 
select 'name',name from table 
union all 
select 'flag',vlag from table 
+0

ne me donnez pas un résultat similaire – nAPL

2
with dat as (select '1' as id, 'Jon' as name, 'M' as vlag from dual union all 
      select '2' as id, 'Jessica' as name, 'F' as vlag from dual) 
select * from dat unpivot (column_value for column_name in (id, name, vlag)); 

mais le résultat sera assez réponse précédente à simmilar (si vous y ajouter rownum et utiliser comme une clé).

+0

@Kasper oui c'est ma réponse, mais ma table est 200 colonne et c'est très difficile de taper manuellement sql :) merci très mach – nAPL

+0

@nAPL essayer quelque chose comme ça: http://dba.stackexchange.com/ questions/48393/passing-column-names-dynamiquement-to-unpivot – Kacper

+0

merci c'est mes solutions http://stackoverflow.com/questions/15100101/unpivot-on-an-indeterminate-number-of-columns – nAPL