sql >> Databáze >  >> RDS >> Oracle

Oracle SQL -- Získávání hodnot z více řádků

Data můžete takto pivotovat v jakékoli verzi 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

Pokud používáte 11g, můžete také použít PVOT operátor.

Pokud je to reprezentativní pro váš datový model, bude tento typ datového modelu s atributem entity obecně spíše neefektivní. Obecně by vám mnohem lépe posloužila tabulka, která měla sloupce pro name , height , awesomeness , atd.




  1. Jak změnit pořadí primárního klíče?

  2. Jak povolit XA Oracle 11g

  3. Použití JDBC, když název serveru obsahuje zpětné lomítko (localhost\TESTDATA)

  4. Výběr „dalšího“ řádku podle specifických kritérií v MySQL