Πες ότι έχεις ένα πίνακα με τις πωλήσεις προϊόντων ανά μήνα και πελάτη. Το pivot μπορείς να το κάνεις με
select ProductID,CustomerID
SUM(CASE WHEN Month=1 THEN Sales END) As January,
SUM(CASE WHEN Month=2 THEN Sales END) As February,
...
From ProductCustomerSales
Group By ProductID, CustomerID
Η ίδια δουλειά με την εντολή Pivot γίνεται:
SELECT ProductID, CustomerID,
[1] AS January,
[2] AS February,
...
FROM ProductCustomerSales
PIVOT (SUM(Sales) FOR Month IN ([1],[2]...)) AS P
Αν τώρα τα δύο SELECT μοιάζουν μεταξύ τους ... μάλλον δεν είναι τυχαίο. Ακόμα και το ίδιο execution plan βγάζουν! Το μόνο που κερδίζεις με το PIVOT είναι τα CASE WHEN.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos