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 サイトの他の関連記事を参照してください。