sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL -- Ta tag i värden från flera rader

Du kan pivotera data så här i vilken version av Oracle som helst.

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

Om du använder 11g kan du också använda PVOT operatör.

Om detta dock är representativt för din datamodell kommer den typen av enhetsattributdatamodell i allmänhet att vara ganska ineffektiv. Du skulle generellt sett vara mycket bättre betjänt med en tabell som hade kolumner för name , height , awesomeness osv.




  1. JSP-kodning medan icke-engelsk text infogas i MySQL-databasen

  2. WAMP Kan inte komma åt på det lokala nätverket 403 Förbjudet

  3. Kan inte installera mysql2 for rails 3 på Windows

  4. Exportera Oracle Table till Excel-kalkylblad