Domanda

Questo è un follow-up domanda per Transpose una riga in più righe Oracle

Voglio essere in grado di UNPIVOT un risultato della query arbitrarie.

Per UNPIVOT una tabella manualmente, vorrei fare:

select value_type, value from (
 (
  -- query to be unpivoted
  -- EG: select col1, col2, col3, col4, col5 from table
 )
 unpivot
 (
  -- Line I would like to change
  value for value_type in (col1, col2, col3, col4, col5)
 )
);

Questo funziona per tutte le query che restituiscono 5 colonne, chiamato col1, col2, ecc C'è qualcosa ho messo in posto di value for value_type in (col1, col2, col3, col4, col5) che catturerà tutti i nomi delle colonne dalla query / vista / tabella che viene selezionato nella prima parte?

È stato utile?

Soluzione

Si potrebbe creare una stored procedure per fare questo in PL / SQL creando dinamicamente l'istruzione SQL come una stringa di quindi utilizzando execute immediate per eseguirlo e restituire un cursore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top