यहां PIVOT
का एक वैकल्पिक विकल्प दिया गया है MAX
. का उपयोग करके आपके परिणाम CASE
के साथ जिसके लिए तालिका में वापस शामिल होने की आवश्यकता नहीं है:
select t.id1, t.id2, t.a, t.b,
max(case when t2.name = 'C1' then t2.vint end) c1,
max(case when t2.name = 'C2' then t2.vstring end) c2,
max(case when t2.name = 'C3' then t2.vdata end) c3
from tab1 t
left join tab2 t2 on t.id1 = t2.id1 and t.id2 = t2.id2
group by t.id1, t.id2, t.a, t.b