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

SQL Entpivotieren Sie mehrere Spaltendaten

Eine einfachere Möglichkeit, die Daten zu entpivozieren, wäre die Verwendung von CROSS APPLY, um die Spalten paarweise zu entpivotieren:

select vendorid, orders, orders1
from pvt1
cross apply
(
  select emp1, sa union all
  select emp2, sa1
) c (orders, orders1);

Siehe SQL-Fiddle mit Demo . Oder Sie können CROSS APPLY mit der VALUES-Klausel verwenden, wenn Sie UNION ALL nicht verwenden möchten:

select vendorid, orders, orders1
from pvt1
cross apply
(
  values 
    (emp1, sa),
    (emp2, sa1)
) c (orders, orders1);

Siehe SQL-Fiddle mit Demo