Oracle UNPIVOT

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.

Oracle UNPIVOT

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:

oracle unpivot - tabella di esempio

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:

oracolo unpivot - esempio

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 include nulls example

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:

esempio di unpivot colonne multiple di Oracle

Questa immagine illustra il processo di trasposizione:

Oracle unpivot colonne multiple

In questo tutorial, hai imparato come usare la clausola UNPIVOT di Oracle per trasporre colonne in righe.

  • Questo tutorial è stato utile?
  • SìNo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.