Einschwenken in DB2
Habe ich zur Umsetzung meiner Zeilen in Spalten aus einer DB2-Tabelle.Dies ist, wie meine Tabelle aufgebaut ist..
ItemID Item Value
---------------------
1 Meeting Now
1 Advise Yes
1 NoAdvise No
2 Meeting Never
2 Advise No
2 NoAdvise Null
2 Combine Yes
Ich soll dies umgesetzt werden in(beachten Sie, dass ich nicht wollen, zu transponieren, zu Kombinieren)
ItemID Meeting Advise NoAdvise
---------------------------------------
1 Now Yes No
2 Never No Null
Bisschen zu kämpfen mit der Abfrage, können Sie bitte helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht sehr schön, aber es sollte funktionieren. DB2 verfügt nicht über einen integrierten-in
PIVOT
Funktion, wie SQL Server.Den derzeit akzeptierte Antwort bhamby ist sicherlich richtig, aber es lohnt sich, wenn Sie mit mehreren korrelierten Unterabfragen ist viel langsamer als eine einzelne Gruppe von (Tipp: es ist sehr wahrscheinlich):
Ist es auch ein wenig einfacher meiner Meinung nach
SQLFiddle (in PostgreSQL, arbeitet aber auf DB2-LUW als auch)
Als @bhamby sagte, DB2 haben nicht einen
PIVOT
Funktion.Meist, meiner Abfrage nur unterscheidet sich darin, wie die Ergebnisse abgerufen werden - Sie würden laufen müssen, die profiler/Optimierer über Sie, um sicher zu sein, aber ich glaube, dass die korrelierte sub-queries ausgeführt werden kann pro Zeile (möglicherweise weniger effizient), nicht als Sätze. Dies ist wahrscheinlich ein Thema, über kleine Datensätze.
(... Eigentlich bin ich ein wenig besorgt, dass Sie die Spalten für die beiden 'beraten' und 'keine Beratung', die scheint eine Art von booleschen Bedingung - das heißt, man sollte einen haben, aber die anderen nicht).