PIVOTオペレーターはOracle11gR1で導入されました> 。クエリは、そのバージョン以降で正常に機能します。以前のバージョンでは、そのエラーが発生します:
SQL> SELECT * FROM sales PIVOT (sum(quantity) FOR color IN ('WHITE','DARK'));
SELECT * FROM sales PIVOT (sum(quantity) FOR color IN ('WHITE','DARK'))
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
したがって、演算子をサポートするバージョンを使用しているようには見えません。以前のバージョンでは、集計とcaseステートメントを使用して同じタスクを手動で実行できます。
select item_name, clothes_size,
sum(case when color = 'WHITE' then quantity end) as white,
sum(case when color = 'DARK' then quantity end) as dark
from sales
group by item_name, clothes_size
order by item_name, clothes_size;