Oracle Pivot 11.g den sonra tabloları çaprazlama yapmak için kullanılmaya başlandı. Yani çekilen satırları kolon ismi yapmayı sağlar. Bu işlem seçilen alanları listelemede ya da "group by" kullanarak gelecek dataları daha anlamlı görmek için işe yarayabilir. Örneklemek gerekirse;
"select * from customer" tablosu alttaki görüntüyü versin.
id | customer | product_count |
500 | Ali | 30 |
501 | Ali | 40 |
502 | Veli | 40 |
503 | Veli | 90 |
504 | Ahmet | 30 |
"SELECT * FROM ( SELECT customer, product_count FROM customer ) PIVOT (COUNT(product_count), FOR product_count IN ('30' ,'40', '90')) ORDER BY customer"
sorgusu bize
customer | 30 | 40 | 90 |
Ali | 1 | 1 | 0 |
Ahmet | 1 | 0 | 0 |
Veli | 0 | 1 | 1 |
Çıktısı verecektir. Böylece datalar kolon ismi countları ise satır olmuş oldu.
Not: Önce seçilecek datalar ardından for döngüsü kurularak yapılabilir. PIVOT komutu içinde ayrıca "avg, sum(), min(), max(), distinct vs.." komutları da kullanabilirsiniz.