Oracleの PIVOT句の定義 は、IN
句でサブクエリを定義する可能性があることを指定します。私がこれを想像する架空の例はこれです
... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
ただし、その場合、ORA-00936: Missing expression
エラー。残念ながら、この新しいPIVOT
句からのエラーは、通常かなり不可解です。 IN
句のPIVOT
句でサブクエリを使用する方法の良い例を教えてもらえますか?
どうやら、ドキュメンテーションの最後まで読むのが面倒でした...さらにダウンして、ドキュメンテーションの状態:
サブクエリサブクエリは、XMLキーワードと組み合わせてのみ使用されます。サブクエリを指定すると、サブクエリで見つかったすべての値がピボットに使用されます。 [...]
これは動作します
PIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
完全なドキュメントを見る
http://docs.Oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE
同様の要件がありました。 pl sqlを介してこれを達成し、動的sqlを作成し、ピボットIN句に追加しました。もちろん、ピボットクエリも動的SQLでした。ただし、通常のピボット句では、sqlを使用してこれを行うことはできません。