Data můžete takto pivotovat v jakékoli verzi Oracle.
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
Pokud používáte 11g, můžete také použít PVOT
operátor.
Pokud je to reprezentativní pro váš datový model, bude tento typ datového modelu s atributem entity obecně spíše neefektivní. Obecně by vám mnohem lépe posloužila tabulka, která měla sloupce pro name
, height
, awesomeness
, atd.