توضیحات

دستوری است که برای عوض کردن جای ستون‌ها و سطرها به کار می‌رود.

دستور

دستور Insert در pl/sql به این شکل است:

SELECT * FROM
(
  SELECT column1, column2
  FROM tables
  WHERE conditions
)
PIVOT 
(
  aggregate_function(column2)
  FOR column2
  IN ( expr1, expr2, ... expr_n) | subquery
)
ORDER BY expression [ ASC | DESC ];

مثال

• مثالی از دستور pivot که جدول orders را pivot می‌کند.

CREATE TABLE orders
( order_id integer NOT NULL,
  customer_ref varchar2(50) NOT NULL,
  order_date date,
  product_id integer,
  quantity integer,
  CONSTRAINT orders_pk PRIMARY KEY (order_id)
);

با اجرای این دستور خروجی زیر نمایش داده می‌شود:

SELECT order_id, customer_ref, product_id
FROM orders
ORDER BY order_id;

مثالی از دستور pivote-1 

و همچنین دستور pivot را اجرا می‌کنیم که خروجی زیر نمایش داده می‌شود:

SELECT * FROM
(
  SELECT customer_ref, product_id
  FROM orders
)
PIVOT
(
  COUNT(product_id)
  FOR product_id IN (10, 20, 30)
)
ORDER BY customer_ref;

مثالی از دستور pivote-2