Sie können die Daten in jeder Version von Oracle auf diese Weise pivotieren.
SELECT id,
MAX( CASE WHEN key = 'name' THEN value ELSE null END ) name,
MAX( CASE WHEN key = 'height' THEN value ELSE null END ) height,
MAX( CASE WHEN key = 'awesomeness' THEN value ELSE null END ) awesomeness
FROM facts
WHERE id IN (1,2,3)
GROUP BY id
Wenn Sie 11g verwenden, können Sie auch PVOT
verwenden Betreiber.
Wenn dies jedoch repräsentativ für Ihr Datenmodell ist, wird diese Art von Entitätsattribut-Datenmodell im Allgemeinen ziemlich ineffizient sein. Im Allgemeinen wären Sie viel besser mit einer Tabelle bedient, die Spalten für name
enthält , height
, awesomeness
usw.