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

ओरेकल पिवट ऑपरेटर

आपको ऐसा आउटपुट सिर्फ इसलिए मिल रहा है क्योंकि आप select . जारी कर रहे हैं टेबल के सामने स्टेटमेंट (आपका tbl तालिका) जिसमें संभावित रूप से एक कॉलम (उदाहरण के लिए प्राथमिक कुंजी कॉलम) होता है जो विशिष्ट रूप से एक पंक्ति और pivot की पहचान करता है ऑपरेटर उस कॉलम के मूल्यों को ध्यान में रखता है। यहाँ एक सरल उदाहरण है:

/*assume it's your table tbl */
with tbl(unique_col, col1, col2) as(
  select 1, 'a',  'a1' from dual union all
  select 2, 'b',  'b1' from dual union all
  select 3, 'c',  'c1' from dual
)

ऐसी तालिका के विरुद्ध एक प्रश्न आपको वह आउटपुट (अवांछनीय आउटपुट) देगा जो आपने प्रश्न में दिया था:

select A,B 
  from tbl
pivot(
  max(col2) for col1 in ('a' as A,'b' as B)
)

परिणाम:

A    B
--   --
a1   null   
null b1

वांछित आउटपुट उत्पन्न करने के लिए, आपको एक पंक्ति के लिए अद्वितीय मान वाले कॉलम को बाहर करना होगा:

select A
     , B 
  from (select col1 
             , col2  /*selecting only those columns we are interested in*/
           from tbl ) 
  pivot(
    max(col2) for col1 in ('a' as A,'b' as B)
  )

परिणाम:

A  B
-- --
a1 b1 


  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 ODP.Net और EF CodeFirst - SaveChanges Error

  2. JSON_TABLE () Oracle में फ़ंक्शन

  3. ORA-01461:केवल एक लंबे कॉलम में डालने के लिए एक लंबा मान बांध सकता है-क्वेरी करते समय होता है

  4. क्या पीएल/एसक्यूएल में कोई हैश फ़ंक्शन है?

  5. ओरेकल डेटाबेस स्टेटमेंट में ENABLE कीवर्ड का उपयोग करने का कारण / उपयोगिता क्या है?