sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL -- Henter værdier fra flere rækker

Du kan pivotere data på denne måde i enhver version af 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

Hvis du bruger 11g, kan du også bruge PVOT operatør.

Hvis dette dog er repræsentativt for din datamodel, vil den slags enhedsattributdatamodel generelt være ret ineffektiv. Du ville generelt være meget bedre tjent med en tabel, der havde kolonner for name , height , awesomeness osv.




  1. Strategi for synkronisering af database fra flere lokationer til en central database og omvendt

  2. Codeigniter-forespørgsel returnerer tom

  3. Hvordan indstilles 0 med MAX-funktionen, når den er NULL?

  4. mysql-connector-java til mysql 5.6