यदि आप 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 उदाहरण
यहां धुरी के बारे में और पढ़ें:टिम हॉल द्वारा ओरेकल में पिवट करें