Wie zum Zusammenführen von zwei Zeilen in eine Zeile in sql?
Ich habe eine Tabelle als
EmployeeID IndividualPay FamilyPay IsActive
1 200 300 true
1 100 150 false
Aber ich möchte die Ausgabe wie folgt(ich will diesen Ausgang benutzen zu inner join mit einigen anderen Tabelle)
EmployeeID IndPay_IsActive IndPay_IsNotActive FamilyPay_IsActive FamilyPay_IsNotActive
1 200 100 300 150
Ich habe mir in PIVOT
, aber nicht sicher sind, wie Sie es verwenden, in meinem Fall.
- Ja, Sie wollen eine pivot-Abfrage, aber die syntax variiert je nach Datenbank-system. Welche verwenden Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Art der transformation ist bekannt als ein pivot. Sie nicht angeben, welche Datenbank du verwendest, aber können Sie eine Aggregatfunktion mit einem
CASE
Ausdruck in einem system:Sehen SQL Fiddle mit Demo
Abhängig von Ihrer Datenbank, wenn Sie Zugriff sowohl auf die
PIVOT
undUNPIVOT
Funktionen, dann können Sie verwendet werden, um das Ergebnis zu erhalten. DieUNPIVOT
- Funktion wandelt dieIndividualPay
undFamilyPay
Spalten in Zeilen. Sobald das geschehen ist, dann können Sie das vier neue Spalten mit denPIVOT
Funktion:Sehen SQL Fiddle mit Demo.
Beide geben das gleiche Ergebnis:
else
ist nicht erforderlich, wenn mit einemCASE
es ist es nicht enthalten dann einenull
werden in die Spalte eingefügt.