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

एक अलग कॉलम पर अलग-अलग मानों के लिए एक ही कॉलम का चयन करें

परीक्षण नहीं किया गया क्योंकि आपने परीक्षण डेटा प्रदान नहीं किया (तालिका AC_XXXX . से ):
(Oracle 11 PIVOT क्लॉज का उपयोग करके)

select *
from   ( select emp_id, seq_nr, name
         from   ac_xxxx
         where  emp_id = '874830' )
pivot ( max(name) for seq_nr in (3 as seq3name, 4 as seq4name, 21 as seq21name,
                      22 as seq22name, 23 as seq23name, 24 as seq24name, 25 as seq25name)
      )
;

Oracle 10 या इससे पहले के लिए, पिवट "हाथ से" किया जाता था, जैसे:

select max(emp_id) as emp_id,               --  Corrected based on comment from OP
       max(case when seq_nr = 3 then name end) as seq3name,
       max(case when seq_nr = 4 then name end) as seq4name,
    --   etc. (similar expressions for the other seq_nr)
from   ac_xxxx
where  emp_id = '874830'
;

या, emp_id max() . के भीतर होने की आवश्यकता नहीं है अगर हम group by emp_id add जोड़ते हैं - जो तब एक अलग लेकिन संबंधित प्रश्न के लिए WHERE क्लॉज के बिना भी काम करेगा।




  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 SQL कई पंक्तियों को सम्मिलित करता है और कुछ लौटाता है

  2. sql - oracle - विशिष्ट समूह/sku . के लिए पहले और अंतिम रिकॉर्ड का चयन करना

  3. TransactionScope और Oracle के साथ समस्याएं

  4. SQL का उपयोग करके तिथियों की एक श्रृंखला उत्पन्न करें

  5. Oracle क्लाइंट के विभिन्न संस्करणों पर cx_Oracle परिनियोजित करना