Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL - Récupération de valeurs à partir de plusieurs lignes

Vous pouvez faire pivoter les données comme celle-ci dans n'importe quelle version d'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

Si vous utilisez 11g, vous pouvez également utiliser le PVOT opérateur.

Si cela est représentatif de votre modèle de données, ce type de modèle de données entité-attribut sera généralement plutôt inefficace. Vous seriez généralement bien mieux servi avec une table qui avait des colonnes pour name , height , awesomeness , etc.