पंक्तियों को कॉलम में बदलने के लिए आपको 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