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

ORACLE . में कॉलम की पंक्तियाँ

select name,id, 
 max(case when groupa = 'A' then groupa end) as group1,
  max(case when groupa = 'B' then groupa end) as group2,
  max( case when groupa = 'C' then groupa end) as group3
   from tablename
   group by name, id

अगर ग्रुपा की संख्या तय हो जाती है तो ऊपर दी गई क्वेरी काम करेगी।

संपादित करें:पिवट का उपयोग करना

 select * from
  (select name, id , groupa from tablename)
  pivot xml (
  max(groupa) for groupa in
   (select distinct groupa from tablename)
   )

समाधान के लिए धन्यवाद। मैं लगभग वहाँ हूँ। इस क्वेरी को चलाने के बाद मुझे यही मिलता है। वास्तव में 53 अलग-अलग समूह हैं इसलिए यह 53 कॉलम जोड़ रहा है लेकिन एक उपयोगकर्ता को सौंपे गए समूहों की अधिकतम संख्या 5 है।

NAME      ID      A      B      C     D      E      F      G      H
James     20      A      null   null  null   null   null   null   H
Michael   30      A      B      null  null   E      null   null   null

मैं इस तरह के परिणाम कैसे प्राप्त करूं...

NAME      ID      GROUP_1  GROUP_2  GROUP_3
James     20      A        H
Michael   30      A        B        E

जैसा कि मैंने प्रश्न में उल्लेख किया है, मैं अपना परिणाम कैसे प्राप्त करूं?धन्यवाद,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00947 :पर्याप्त मान नहीं

  2. जेपीए इकाई वर्ग 2 @GeneratedValue फ़ील्ड के साथ त्रुटि दे रहा है

  3. पीएल/एसक्यूएल से शेल स्क्रिप्ट को कॉल करना, लेकिन शेल को ग्रिड उपयोगकर्ता के रूप में निष्पादित किया जाता है, ऑरैकल नहीं

  4. सीडीसी के साथ एडब्ल्यूएस डीएमएस। अद्यतन रिकॉर्ड में केवल अद्यतन फ़ील्ड शामिल है। सभी को कैसे शामिल करें?

  5. Oracle सबक्वेरी फनीनेस