ホームページ > データベース > mysql チュートリアル > DECODE または PIVOT を使用して Oracle で行を列に効率的にピボットする方法

DECODE または PIVOT を使用して Oracle で行を列に効率的にピボットする方法

Linda Hamilton
リリース: 2025-01-01 10:02:12
オリジナル
625 人が閲覧しました

How to Efficiently Pivot Rows into Columns in Oracle Using DECODE or PIVOT?

Oracle での行から列への変換

データ テーブルには、多くの場合、個々のエンティティの複数の行にまたがる情報が含まれています。データの読みやすさと分析を向上させるには、これらの行を列に変換すると有益な場合があります。この質問では、単一のローン番号の文書情報を含むテーブルをより使いやすい形式に変換する実際の使用例を示します。

Oracle では、DECODE 関数または PIVOT を使用して行を列に効率的にピボットできます。句。これらのメソッドを使用して質問で示された問題を解決する方法を見てみましょう。

DECODE 関数の使用

SELECT
    loan_number,
    MAX(DECODE(document_type, 'Voters ID', document_id)) AS voters_id,
    MAX(DECODE(document_type, 'Pan card', document_id)) AS pan_card,
    MAX(DECODE(document_type, 'Drivers licence', document_id)) AS drivers_licence
FROM
    doc_tab
GROUP BY loan_number
ORDER BY loan_number;
ログイン後にコピー

このクエリは DECODE 関数を使用して、 document_type に基づいて、 document_id 値を適切な列に設定します。 MAX() 集計関数は、各ドキュメント タイプの最新の document_id を取得するために使用されます。

PIVOT 句の使用 (Oracle 11g で使用可能)

SELECT *
FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence')
);
ログイン後にコピー

PIVOT 句は、行を列にピボットするより簡潔な方法を提供します。集計関数 (この場合は MAX) とピボットする列を指定する必要があります。

どちらのアプローチでも効果的に行を列に変換し、各ローン番号の文書情報をより直感的で整理されたビューを提供します。

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

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