sql >> Database >  >> RDS >> Oracle

Oracle SQL -- Waarden uit meerdere rijen halen

U kunt de gegevens op deze manier draaien in elke versie van 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

Als u 11g gebruikt, kunt u ook de PVOT . gebruiken telefoniste.

Als dit echter representatief is voor uw gegevensmodel, zal dat soort gegevensmodel met entiteitskenmerken over het algemeen nogal inefficiënt zijn. Over het algemeen zou je veel beter geholpen zijn met een tabel met kolommen voor name , height , awesomeness , enz.




  1. Programmatisch script genereren voor alle objecten in een database

  2. Hoe gebruik ik de huidige datum in een HQL-query met een Oracle-database?

  3. Recursieve query in SQL Server

  4. Controleer op duplicaten voordat u deze invoegt