SQL Unpivot mehrere Spalten an Daten
Ich bin mit SQL server 2008 und ich bin versucht, unpivot der Daten. Hier ist der SQL code, den ich verwende,
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
Und Hier ist das Ergebnis der oben genannten code.
VendorID Orders Orders1
1 4 2
1 4 3
1 9 2
1 9 3
Aber ich möchte, dass meine Ausgabe so zu sein, wie unten angegeben
VendorID Orders Orders1
1 4 2
1 9 3
Der Beziehung aus der obigen code ist 2 verwandt ist 4 und 3 ist im Zusammenhang zu 9.
Wie kann ich das erreichen?
InformationsquelleAutor der Frage user1005310 | 2013-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen einfacheren Weg, um unpivot der Daten wäre die Verwendung einer CROSS APPLY unpivot die Spalten paarweise:
Sehen SQL Fiddle mit Demo. Oder Sie können die Verwendung von CROSS APPLY mit der VALUES-Klausel wenn Sie nicht möchten, verwenden Sie den UNION ALL:
Sehen SQL Fiddle mit Demo
InformationsquelleAutor der Antwort Taryn