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

19 कॉलम को घटाकर 5 कॉलम करें

आप एक साधारण PIVOT सुविधा।

फर्क सिर्फ इतना है कि आप PIVOT . नहीं करना चाहते हैं कॉलम पर मान , लेकिन कीवर्ड क्रम . पर संभव है ।

यहां वर्णमाला क्रम . पर पिवट करने के लिए क्वेरी खोजशब्दों की।

ध्यान दें, कि पहली दो उपश्रेणियाँ केवल सरलीकृत डेटा उत्पन्न करती हैं इस प्रकार है:

CODPRO  CODRCA
------- ------
400JE   LOGIST
400JE   INDLEG
50EFJ10 TP    
50EFJ10 ESPVER
50EFJ10 AGRICU
50EFJ10 INDLEG
50EFJ10 LOGIST

क्वेरी CODRCA . के क्रम का उपयोग करके पहली पंक्ति संख्या की गणना करती है और pivot उस पर:

with PRO as (
select '400JE' CODPRO from dual union all
select '50EFJ10' CODPRO from dual),
RCA as (
select '400JE' CODPRO, 'LOGIST' CODRCA from dual union all
select '400JE' CODPRO, 'INDLEG' CODRCA from dual union all
select '50EFJ10' CODPRO, 'TP' CODRCA from dual union all
select '50EFJ10' CODPRO, 'ESPVER' CODRCA from dual union all
select '50EFJ10' CODPRO, 'AGRICU' CODRCA from dual union all
select '50EFJ10' CODPRO, 'INDLEG' CODRCA from dual union all
select '50EFJ10' CODPRO, 'LOGIST' CODRCA from dual),
rn as (
select PRO.CODPRO,RCA.CODRCA,
row_number() over (partition by PRO.CODPRO order by RCA.CODRCA) as rn
from PRO
join RCA on PRO.CODPRO = RCA.CODPRO)
select *
from rn
pivot (max(CODRCA)  CODRCA for (rn) in
(1 as "C1",
 2 as "C2",
 3 as "C3",
 4 as "C4",
 5 as "C5"))

परिणाम

CODPRO  C1_COD C2_COD C3_COD C4_COD C5_COD
------- ------ ------ ------ ------ ------
400JE   INDLEG LOGIST                     
50EFJ10 AGRICU ESPVER INDLEG LOGIST TP

यदि आप अन्य सॉर्टिंग लॉजिक . पसंद करते हैं आवश्यकतानुसार अनुकूलित करें। यदि आपको अलग-अलग कॉलम नामों की आवश्यकता है तो भी अनुकूलित करें।



  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. वसंत डेटा जेपीए क्वेरी में @lock टाइमआउट कैसे निर्दिष्ट करें?

  4. Oracle अनुप्रयोगों R12 में APPL_TOP का मंचन किया गया

  5. इश्यू बिल्डिंग cx_Oracle - libclntsh.so.11.1 => नहीं मिला