Rezumat: în acest tutorial, veți învăța cum să utilizați clauza Oracle UNPIVOT
pentru a transpune coloanele în rânduri.
Introducere la clauza Oracle UNPIVOT
Clauza Oracle UNPIVOT
vă permite să transpuneți coloanele în rânduri. Clauza UNPIVOT
este opusă clauzei PIVOT
, cu excepția faptului că nu dezagregă datele în timpul procesului de transpunere.
În cele ce urmează se ilustrează sintaxa clauzei Oracle UNPIVOT
:
În această sintaxă:
- Clujba
unpivot_clause
vă permite să specificați un nume pentru o coloană care reprezintă valorile măsurii nepivotate. - Clujba
unpivot_for_clause
vă permite să specificați numele pentru fiecare coloană care va conține valorile măsurii. - Clujba
unpivot_in_clause
conține coloanele pivotate care vor fi nepivotate.
Clauza INCLUDE | EXCLUDE NULLS
vă permite să includeți sau să excludeți rândurile cu valoare nulă.
- Clauza
INCLUDE NULLS
îi ordonă lui Oracle să includă rândurile cu valoare nulă. - Clauza
EXCLUDE NULLS
, pe de altă parte, elimină rândurile cu valoare nulă din setul de rezultate returnat.
În mod implicit, operația unpivot exclude rândurile cu valoare nulă.
Să luăm câteva exemple de utilizare a clauzei Oracle UNPIVOT
pentru a înțelege mai bine.
Configurarea unui tabel de probă
În primul rând, creați un tabel nou numit sale_stats
pentru demonstrație:
În al doilea rând, introduceți câteva rânduri în tabelul sale_stats
:
În al treilea rând, interogați datele din tabelul sale_stats
:
Iată rezultatul:
Exemple Oracle UNPIVOT
Această instrucțiune utilizează clauza UNPIVOT
pentru a roti coloanele product_a
, product_b
și product_c
în rânduri:
În acest exemplu:
unpivot_clause
este quantity
, care este o coloană ce reprezintă valorile nepivotate din coloanele product_a
, product_b
și product_c
.
Clasa unpivot_for_clause
este FOR product_code
, care este coloana care va conține valorile măsurii.
Clauza unpivot_in_clause
este:
care instruiește Oracle să nepivoteze valorile din coloanele product_a
, product_b
și product_c
.
Următoarea imagine arată rezultatul:
În mod implicit, operațiunea UNPIVOT
exclude rândurile cu valoare nulă, prin urmare, nu vedeți niciun NULL în rezultat.
Exemplul următor utilizează clauza UNPIVOT
pentru a transpune valorile din coloanele product_a
, product_b
și product_c
în rânduri, dar incluzând rândurile cu valoare nulă:
Iată rezultatul:
Oracle unpivot multiple columns
Să vedem un exemplu de unpivot pe mai multe coloane.
În primul rând, renunțați și recreați tabelul sale_stats
:
În al doilea rând, introduceți rânduri în tabelul sale_stats
:
În al treilea rând, interogați datele din tabelul sale_stats
:
În cele din urmă, utilizați clauza UNPIVOT
pentru a transpune valorile din coloanele a_qty
, a_value
, b_qty
și b_value
în rânduri:
Iată setul de rezultate:
Această imagine ilustrează procesul de transpunere:
În acest tutorial, ați învățat cum să utilizați clauza Oracle UNPIVOT
pentru a transpune coloanele în rânduri.
- A fost util acest tutorial?
- DaNu
.