ホームページ > データベース > mysql チュートリアル > DECODE と PIVOT を使用して Oracle で行を列に変換する方法

DECODE と PIVOT を使用して Oracle で行を列に変換する方法

Susan Sarandon
リリース: 2024-12-31 15:54:21
オリジナル
616 人が閲覧しました

How to Transform Rows into Columns in Oracle Using DECODE and PIVOT?

Oracle で行を列に変換する方法

Oracle では、データが行に配置されるシナリオに直面することがありますが、変換する必要があります。円柱状に表示されます。この記事では、DECODE 関数または PIVOT 句を使用して行を列に変換する方法について詳しく説明します。

ローンの詳細を含む次の表を考えてみましょう。

LOAN NUMBER   DOCUMENT_TYPE                DOCUMENT_ID
992452533663  Voters ID                    XPD0355636
992452533663  Pan card                     CHXPS5522D
992452533663  Drivers license              DL-0420110141769
ログイン後にコピー

行を列にピボットするには、 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 license', document_id)) AS drivers_licence
  FROM
    doc_tab
GROUP BY loan_number
ORDER BY loan_number;
ログイン後にコピー

このクエリは次の結果を生成します。出力:

LOAN_NUMBER   VOTERS_ID            PAN_CARD             DRIVERS_LICENCE    
------------- -------------------- -------------------- --------------------
992452533663  XPD0355636           CHXPS5522D           DL-0420110141769     
ログイン後にコピー

Oracle バージョン 11g 以降では、PIVOT 句を使用して同じ結果を達成する簡単な方法が提供されます。

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

どちらの方法でも効果的に行を列にピボットでき、データを好みの形式で操作および表示できます。

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

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