首頁 > 資料庫 > mysql教程 > 如何在 Oracle 中使用 DECODE 和 PIVOT 將行轉換為列?

如何在 Oracle 中使用 DECODE 和 PIVOT 將行轉換為列?

Susan Sarandon
發布: 2024-12-31 15:54:21
原創
604 人瀏覽過

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')
);
登入後複製

兩種方法都可以有效地將行轉換為列,從而允許您可以以首選格式操作和顯示資料。

以上是如何在 Oracle 中使用 DECODE 和 PIVOT 將行轉換為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板