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

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

Susan Sarandon
リリース: 2025-01-04 04:40:43
オリジナル
225 人が閲覧しました

How to Convert Rows to Columns in Oracle Using DECODE and PIVOT?

Oracle で行を列に変換: DECODE と PIVOT を利用する

問題:

Transformローン番号に関連付けられた複数の文書タイプと ID を列形式で表す行を含むテーブル形式。結果のテーブルには、ローン番号ごとに 1 つの行があり、各文書タイプと対応する ID の列が含まれます。

例:

入力テーブル:

LOAN NUMBER DOCUMENT_TYPE DOCUMENT_ID
992452533663 Voters ID XPD0355636
992452533663 Pan card CHXPS5522D
992452533663 Drivers licence DL-0420110141769

必要な出力:

LOAN NUMBER VOTERS_ID PAN_CARD DRIVERS LICENCE
992452533663 XPD0355636 CHXPS5522D DL-0420110141769

Oracle解決策:

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
    input_table
GROUP BY loan_number
ORDER BY loan_number;
ログイン後にコピー

PIVOT 句 (Oracle 11g ):

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

どちらの方法でも行を列に効果的に入れ替えて、望ましい結果を達成します。 Oracle DECODE と PIVOT の詳細については、参照リンクを参照してください。

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

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