Oracle Pivot

Oracle Pivot
Questo post copre il concetto di pivot in Oracle Server utilizzando la clausola di Pivot. Questa clausola consente di riorganizzare le righe di una tabella in colonne. Ciò ti assicura di poter ottenere risultati da una determinata query in un formato crosstab.

Introduzione a Oracle Pivoting

Per impostazione predefinita, i database relazionali archiviano le informazioni in formato tabulare nelle coppie di valori di colonna. Tuttavia, in alcuni casi, potresti voler deviare il layout e la formattazione dei dati per rappresentare un diverso tipo di informazione.

Qui è dove si mette in atto. Introdotto in Oracle 11c, la clausola per pivot può assumere un dato formato tabulare ed eseguire un'operazione di rotazione. Questo può quindi convertire le righe in colonne.

Sintassi delle query

Di seguito è una semplice sintassi che dimostra l'uso della clausola per pivot in un database Oracle.

Seleziona column_list
Da table_name
Pivot [XML] (
pivot_expression
pivot_for_expression
pivot_in_expression
);

La sintassi sopra contiene i seguenti elementi:

  1. column_list - Questo specifica la colonna che si desidera selezionare dalla tabella fornita.
  2. Pivot_Expression - Questo definisce le colonne che si desidera aggregare. Ciò esegue un gruppo implicito per operazione basato sulle colonne non specificate nell'espressione e nelle colonne definite nel parametro Pivot_in_expression.
  3. pivot_for_expression -Questo descrive la colonna che desideriamo raggruppare o pivot.
  4. pivot_in_expression - Questo definisce le colonne del filtro per pivot_for_expression.

Vediamo un esempio di oracolo tavolo.

Oracle PIVOT EXEMPLE ILLUSTRAZIONE

Supponiamo di avere una tabella di ordini che tiene le informazioni come mostrato nelle query seguenti:

Ordini creativi
(
idnumbernotnull,
Cliente Varchar2 (50) NotNull,
ordine_dated,
Product_idnumber,
Numero di quantità,
numero di prezzo,
Chiave primaria di vincolorutder_pk (ID)
);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (1, 'Beatriz', data '2022-10-10', 4500, 45, 56);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (2, 'Ali', data '2022-10-10', 5400, 65, 109);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (3, 'Gabriel', data '2022-10-11', 6400, 405, 586);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (4, 'Beatriz', data '2022-10-11', 5800, 55, 550);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (5, "Beatriz", data "2022-10-12", 4506, 46, 700);
Inserisci in ordini (id, cliente, order_date, product_id, quantità, prezzo)
Valori (6, 'Gabriel', data '2022-10-11', 9001, 450, 5600);

Tabella di output:

Esempio

L'esempio seguente utilizza la clausola pivot per le informazioni sui clienti e il prodotto acquistato.

SCELTO DA
(
Seleziona Cliente, Product_id dagli ordini
)
perno
(
COUNT (Product_id)
Per Product_id in (4500, 6400, 5800, 4506, 9001)
)
Ordine per cliente;

Un esempio che risulta la tabella è come mostrato:

Esempio 2 - colonne percolate di aliasing

Esempio di colonne aliasing:

SCELTO DA
(
Seleziona Cliente, Product_id dagli ordini
)
perno
(
COUNT (Product_id)
Per Product_id in ("T-shirts" 4500, 'Cooler Case' 6400, 'Audio Mic' 5800, 'Android Phone' 4506, 'Curved Monitor' 9001)
)
Ordine per cliente;

Conclusione

Questo articolo copre le basi del lavoro con il comando pivot nei database Oracle.