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
11gを使用している場合は、PVOTを使用することもできます 演算子。
ただし、これがデータモデルを代表するものである場合、そのようなエンティティ属性データモデルは一般的にかなり非効率的です。一般に、nameの列を持つテーブルを使用した方がはるかに適しています。 、height 、awesomeness 、など。