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

ईएवी तालिका के साथ जुड़ें/पिवट आइटम

पंक्तियों को कॉलम में बदलने के लिए आपको CASE एक्सप्रेशन के साथ एग्रीगेट फ़ंक्शन का उपयोग करने में सक्षम होना चाहिए:

select d.id,
  d.name,
  max(case when a.attr_name = 'color' then a.value end) color,
  max(case when a.attr_name = 'brand' then a.value end) brand,
  max(case when a.attr_name = 'size' then a.value end) size
from product_description d
inner join product_attributes a
  on d.id = a.id
group by d.id, d.name;

देखें SQL Fiddle with Demo

चूंकि आप Oracle 11g का उपयोग कर रहे हैं, तो आप परिणाम प्राप्त करने के लिए PIVOT फ़ंक्शन का उपयोग कर सकते हैं:

select id, name, Color, Brand, "Size"
from
(
  select d.id, d.name,
    a.attr_name, a.value
  from product_description d
  inner join product_attributes a
    on d.id = a.id
) src
pivot
(
  max(value)
  for attr_name in ('color' as Color,
                    'brand' as Brand,
                    'size' as "Size")
) p;

देखें SQL Fiddle with Demo




  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. केवल उन अभिलेखों को कैसे प्रारूपित करें जिनके लिए ORA-01843 फेंका नहीं गया है?

  3. एकाधिक केस स्टेटमेंट में उपनाम कॉलम नाम

  4. सम्मिलित ट्रिगर पर SQL सर्वर परिवर्तन स्तंभ मान

  5. ओरेकल अभिव्यक्ति द्वारा ग्रुप क्यों नहीं कह रहा है?