Sommario: in questo tutorial, imparerai come usare la clausola Oracle UNPIVOT
per trasporre colonne a righe.
Introduzione alla clausola Oracle UNPIVOT
La clausola Oracle UNPIVOT
ti permette di trasporre colonne a righe. La clausola UNPIVOT
è opposta alla clausola PIVOT
tranne che non disaggrega i dati durante il processo di trasposizione.
Il seguente illustra la sintassi della clausola Oracle UNPIVOT
:
In questa sintassi:
- La
unpivot_clause
permette di specificare un nome per una colonna che rappresenta i valori di misura non doppiati. - Il
unpivot_for_clause
permette di specificare il nome per ogni colonna che conterrà i valori della misura. - Il
unpivot_in_clause
contiene le colonne pivotate che saranno non pivotate.
La clausola INCLUDE | EXCLUDE NULLS
permette di includere o escludere le righe con valore nullo.
- La clausola
INCLUDE NULLS
ordina a Oracle di includere le righe nulle. - La clausola
EXCLUDE NULLS
, d’altra parte, elimina le righe nulle dall’insieme dei risultati restituiti.
Per impostazione predefinita, l’operazione di unpivot esclude le righe di valore nullo.
Facciamo alcuni esempi di utilizzo della clausola UNPIVOT
di Oracle per capire meglio.
Impostare una tabella di esempio
Primo, creare una nuova tabella chiamata sale_stats
per dimostrazione:
Secondo, inserire alcune righe nella tabella sale_stats
:
Terzo, interrogare i dati della tabella sale_stats
:
Ecco il risultato:
esempi di Oracle UNPIVOT
Questa dichiarazione usa la clausola UNPIVOT
per ruotare le colonne product_a
, product_b
e product_c
in righe:
In questo esempio:
Il unpivot_clause
è quantity
che è una colonna che rappresenta i valori non doppiati delle colonne product_a
, product_b
e product_c
.
Il unpivot_for_clause
è FOR product_code
, che è la colonna che conterrà i valori della misura.
La clausola unpivot_in_clause
è:
che istruisce Oracle ad annullare i valori nelle colonne product_a
, product_b
e product_c
.
L’immagine seguente mostra l’output:
Per impostazione predefinita, l’operazione UNPIVOT
esclude le righe con valore nullo, quindi non si vede alcun NULL nell’output.
L’esempio seguente usa la clausola UNPIVOT
per trasporre i valori nelle colonne product_a
, product_b
e product_c
in righe, ma includendo le righe con valore nullo:
Ecco il risultato:
Oracle unpivot colonne multiple
Vediamo un esempio di unpivot colonne multiple.
Primo, eliminare e ricreare la tabella sale_stats
:
Secondo, inserire righe nella tabella sale_stats
:
Terzo, interrogare i dati dalla tabella sale_stats
:
Infine, usate la clausola UNPIVOT
per trasporre i valori nella colonna a_qty
, a_value
, b_qty
e b_value
in righe:
Ecco l’insieme dei risultati:
Questa immagine illustra il processo di trasposizione:
In questo tutorial, hai imparato come usare la clausola UNPIVOT
di Oracle per trasporre colonne in righe.
- Questo tutorial è stato utile?
- SìNo