Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle में Rows को Column में कैसे बदलें?

यदि आप Oracle 10g का उपयोग कर रहे हैं, तो आप DECODE . का उपयोग कर सकते हैं पंक्तियों को स्तंभों में पिवट करने के लिए कार्य करें:

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;

आउटपुट:

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

आप Oracle PIVOT . का उपयोग करके इसे प्राप्त कर सकते हैं क्लॉज, 11g में पेश किया गया:

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

दोनों समाधानों के साथ SQLFiddle उदाहरण:SQLFiddle उदाहरण

यहां धुरी के बारे में और पढ़ें:टिम हॉल द्वारा ओरेकल में पिवट करें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएल/एसक्यूएल प्रिंट आउट रेफ कर्सर एक संग्रहीत प्रक्रिया द्वारा लौटाया गया

  2. एसक्यूएल में इन्वेंटरी औसत लागत गणना

  3. Oracle पिवट क्वेरी कॉलम नामों के आसपास उद्धरणों के साथ कॉलम देती है। क्या?

  4. ओरेकल के 'yy' और 'rr' डेट मास्क में क्या अंतर है?

  5. ओरेकल में भौतिक विचार क्या है?