Oracle 10g にキーと値のペアを含むテーブルがあり、それを列を含むテーブルに変換したいと考えています。各一意のキーと各行の対応する値。結果のテーブルは、元のテーブルに追加された新しいキーと値のペアに合わせて動的に調整されます。
Oracle 11g では、PIVOT 操作が導入されており、このような動的なピボットを実行できます。
select * from (select id, k, v from _kv) pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
このクエリは、IN で指定された 4 つのキーそれぞれの列を含むテーブルを作成します。
Oracle 11g では、未知の列見出しを処理できるピボット XML オプションも提供しています。
select * from (select id, k, v from _kv) pivot xml(max(v) for k in (any))
このクエリは XML 結果を生成します。セット。各列が一意のキーに対応し、関連付けられた値が XML 要素のとして保存されます。 value.
以上がOracle で行を列に動的にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。