sql sql-server sql-server-2008 unpivot

SQL Unpivot Multiple Column Data



sql-server sql-server-2008 (1)

Una forma más fácil de anular la división de los datos sería utilizar una APLICACIÓN CRUZADA para anular la división de las columnas en pares:

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

Ver SQL Fiddle con Demo . O puede usar CROSS APPLY con la cláusula VALUES si no desea usar UNION ALL:

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

Ver SQL Fiddle con Demo.

Estoy usando SQL Server 2008 y estoy tratando de quitar la información de los datos. Aquí está el código SQL que estoy usando,

CREATE TABLE #pvt1 (VendorID int, Sa int, Emp1 int,Sa1 int,Emp2 int) GO INSERT INTO #pvt1 VALUES (1,2,4,3,9); GO --Unpivot the table. SELECT distinct VendorID,Orders,Orders1 FROM (SELECT VendorID, Emp1, Sa,Emp2,Sa1 FROM #pvt1 ) p UNPIVOT (Orders FOR Emp IN (Emp1,Emp2) )AS unpvt UNPIVOT (Orders1 FOR Emp1 IN (Sa,Sa1) )AS unpvt1; GO

Y aquí está el resultado del código anterior.

VendorID Orders Orders1 1 4 2 1 4 3 1 9 2 1 9 3

Pero quiero que mi salida sea la indicada a continuación.

VendorID Orders Orders1 1 4 2 1 9 3

La relación del código anterior es 2 está relacionada con 4 y 3 está relacionada con 9.

¿Cómo puedo conseguir esto?