Oracle UNPIVOT

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.

Oracle UNPIVOT

Î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:

oracle unpivot - sample table

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:

oracle unpivot - example

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

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:

oracle unpivot multiple columns example

Această imagine ilustrează procesul de transpunere:

Oracle unpivot multiple columns

Î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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.