Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Pivot für verknüpfte Tabellen SQL Server

Hier ist eine alternative Option zu PIVOT Ihre Ergebnisse mit MAX mit CASE das erfordert nicht, dass die Tabelle wieder mit sich selbst verbunden wird:

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