Oracle Pivot

Oracle Pivot
Ten post obejmuje koncepcję obrotu na serwerze Oracle za pomocą klauzuli obrotowej. Ta klauzula pozwala zmienić rzędy tabeli w kolumny. Zapewnia to, że możesz uzyskać wyniki z danego zapytania w formacie Crosstab.

Wprowadzenie do obrotu Oracle

Domyślnie relacyjne bazy danych przechowują informacje w formacie tabelarycznym w parach kolumnowych. Jednak w niektórych przypadkach możesz chcieć odwrócić układ i formatowanie danych, aby przedstawić inny rodzaj informacji.

Tutaj pojawia się obrót. Wprowadzona w Oracle 11c klauzula Pivot może przyjąć dany format tabelary. Może to następnie przekonwertować wiersze na kolumny.

Składnia zapytania

Poniżej znajduje się prosta składnia, która pokazuje użycie klauzuli obrotowej w bazie danych Oracle.

Wybierz kolumn_list
Z nazwy Table_name
Pivot [xml] (
Pivot_Expression
PIVOT_FOR_Expression
Pivot_in_Expression
);

Powyższa składnia zawiera następujące elementy:

  1. kolumn_list - określa to kolumnę, którą chcesz wybrać z dostarczonej tabeli.
  2. Pivot_Expression - określa to kolumny, które chcesz agregować. Wykonuje to niejawną grupę według operacji opartej na kolumnach nie określonych w wyrażeniu i kolumnach zdefiniowanych w parametrze PIVOT_IN_IND.
  3. PIVOT_FOR_Expression -To opisuje kolumnę, którą chcemy grupować lub obracać się.
  4. Pivot_in_Expression - to definiuje kolumny filtra dla Pivot_Ffor_Expression.

Spójrzmy na przykład obrotu tabeli Oracle.

Oracle obrotowa przykładowa ilustracja

Załóżmy, że mamy informacje o tabeli zamówień, jak pokazano w poniższych zapytaniach:

rozkazywalne rozkazy
(
IdnumberNotNull,
Klient Varchar2 (50) Notnull,
order_datedate,
produkt_idnumber,
Numer ilości,
Numer ceny,
Constraintorder_pk Key podstawowy (id)
);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (1, „Beatriz”, data „2022-10-10”, 4500, 45, 56);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (2, „Ali”, data „2022-10-10”, 5400, 65, 109);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (3, „Gabriel”, data „2022-10-11”, 6400, 405, 586);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (4, „Beatriz”, data „2022-10-11”, 5800, 55, 550);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (5, „Beatriz”, data „2022-10-12”, 4506, 46, 700);
Wstaw do zamówień (id, klient, zamówienie, produkt_id, ilość, cena)
Wartości (6, „Gabriel”, data „2022-10-11”, 9001, 450, 5600);

Tabela wyjściowa:

Przykład

Poniższy przykład wykorzystuje klauzulę PIVOT w celu uzyskania informacji o kliencie i zakupionego produktu.

WYBIERZ SPOŚRÓD
(
Wybierz klienta, produkt_id z zamówień
)
sworzeń
(
Count (produkt_id)
Dla produktu_id w (4500, 6400, 5800, 4506, 9001)
)
Zamówienie przez klienta;

Przykładową tabelą jest jak pokazano:

Przykład 2 - aliasingowe kolumny

Aliasing Columns Przykład:

WYBIERZ SPOŚRÓD
(
Wybierz klienta, produkt_id z zamówień
)
sworzeń
(
Count (produkt_id)
Dla produktu_id w („T-shirts” 4500, „Cooler Case” 6400, „Audio Mic” 5800, „Android Telefon” 4506, „Zakrzywiony monitor” 9001)
)
Zamówienie przez klienta;

Wniosek

W tym artykule obejmuje podstawy pracy z poleceniem PIVOT w bazach danych Oracle.