ホームページ > データベース > mysql チュートリアル > Oracle で行を列に動的にピボットする方法

Oracle で行を列に動的にピボットする方法

Patricia Arquette
リリース: 2025-01-06 14:23:44
オリジナル
468 人が閲覧しました

How to Dynamically Pivot Rows into Columns in Oracle?

Oracle で行を列に動的にピボットする

Oracle 10g にキーと値のペアを含むテーブルがあり、それを列を含むテーブルに変換したいと考えています。各一意のキーと各行の対応する値。結果のテーブルは、元のテーブルに追加された新しいキーと値のペアに合わせて動的に調整されます。

Oracle 11g ソリューション

Oracle 11g では、PIVOT 操作が導入されており、このような動的なピボットを実行できます。

select * from
(select id, k, v from _kv)
pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
ログイン後にコピー

このクエリは、IN で指定された 4 つのキーそれぞれの列を含むテーブルを作成します。

XML ピボット オプション

Oracle 11g では、未知の列見出しを処理できるピボット XML オプションも提供しています。

select * from
(select id, k, v from _kv)
pivot xml(max(v) for k in (any))
ログイン後にコピー

このクエリは XML 結果を生成します。セット。各列が一意のキーに対応し、関連付けられた値が XML 要素のとして保存されます。 value.

注:

  • 提供されるソリューションでは、各キーの値が集計される (最大値が使用される) ことを前提としていますが、必要に応じて集計関数を調整できます。
  • ピボット XML オプションでは任意の数の不明な列を使用できますが、IN 句で列を指定する必要があり、常に指定できるとは限らないことに注意することが重要です。実現可能です。

以上がOracle で行を列に動的にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート