面臨將多行多列的表資料轉換為更具可讀性的列式結構的挑戰? Oracle 資料庫提供了強大的技術來簡化此任務。
假設您有一個包含貸款資訊和文件的表,例如:
LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID ------------------------------------------ 992452533663 | Voters ID | XPD0355636 992452533663 | Pan card | CHXPS5522D 992452533663 | Drivers licence | DL-0420110141769
要將這些行轉換為結構化資料列,您可以利用Oracle 10g 中的DECODE 函數或Oracle 11g 中引入的PIVOT 子句。
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 函數根據特定文件類型將值指派給所需的欄位。然後,MAX 函數傳回每個列的符合文件 ID。
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
PIVOT 子句將文件類型作為列對齊,並將對應的文件 ID 放入適當的儲存格中。
透過利用這些技術,您可以有效地將資料重塑為更以列為中心的佈局,從而更容易了解並進一步分析。
以上是Oracle中如何有效率地將行轉換為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!