2016-07-07 11 views
1

Ganz einfach, aber ich stecke im Moment fest.SQL Select - Zeilen in Spalten umwandeln

Auf einer Informix-Datenbank (keine Pivot-Option), I für eine dynamische Art und Weise bin auf der Suche in der folgenden Tabelle mit SQL zu transformieren:

 
book  | info | value 
----------------------------- 
Moby Dick | price | high 
Moby Dick | stock | few 
Hamlet  | price | low 
Hamlet  | stock | many 
Faust  | price | medium 
Faust  | stock | normal 

Ergebnistabelle:

 
book  | price | stock 
----------------------------- 
Moby Dick | high | few 
Hamlet  | low | many 
Faust  | medium | normal 

Vielen Dank für Ihre Hilfe !

Antwort

1

Sie können aggregieren basierend auf CASE Ausdruck gruppiert nach Buch. Probieren Sie so etwas aus.

SELECT book, 
MAX(CASE WHEN info = 'price' THEN value END) as price, 
MAX(CASE WHEN info = 'stock' THEN value END) as stock 
FROM table1 
GROUP BY book 
+0

Richtig, aber mein Wert ist eigentlich eine Zeichenfolge. Schlechtes Beispiel, ich ändere es. – LordGhettofaust

+0

Verwenden Sie 'MAX' in diesem Fall – ughai

+0

Großartig! Das hat funktioniert. Danke für das... – LordGhettofaust