Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mengubah Baris ke Kolom di Oracle?

Jika Anda menggunakan Oracle 10g, Anda dapat menggunakan DECODE berfungsi untuk mengubah baris menjadi kolom:

CREATE TABLE doc_tab (
  loan_number VARCHAR2(20),
  document_type VARCHAR2(20),
  document_id VARCHAR2(20)
);

INSERT INTO doc_tab VALUES('992452533663', 'Voters ID', 'XPD0355636');
INSERT INTO doc_tab VALUES('992452533663', 'Pan card', 'CHXPS5522D');
INSERT INTO doc_tab VALUES('992452533663', 'Drivers licence', 'DL-0420110141769');

COMMIT;

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;

Keluaran:

LOAN_NUMBER   VOTERS_ID            PAN_CARD             DRIVERS_LICENCE    
------------- -------------------- -------------------- --------------------
992452533663  XPD0355636           CHXPS5522D           DL-0420110141769     

Anda dapat mencapai hal yang sama menggunakan Oracle PIVOT klausa, diperkenalkan di 11g:

SELECT *
  FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence')
);

Contoh SQLFiddle dengan kedua solusi:contoh SQLFiddle

Baca selengkapnya tentang pivot di sini:Pivot In Oracle oleh Tim Hall



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Sequence nextval adalah lompatan nomor bolak-balik

  2. Kendala UNIK vs pemeriksaan sebelum INSERT

  3. Memasukkan data ke database oracle menggunakan php

  4. Apakah substr atau LIKE lebih cepat di Oracle?

  5. Menghubungkan ke Database Oracle menggunakan Layanan Integrasi Server Sql