Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL — Pobieranie wartości z wielu wierszy

Możesz przestawiać dane w ten sposób w dowolnej wersji 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

Jeśli używasz 11g, możesz również użyć PVOT operatora.

Jeśli jednak jest to reprezentatywne dla twojego modelu danych, tego rodzaju model danych encja-atrybut na ogół będzie raczej nieefektywny. Ogólnie rzecz biorąc, byłby znacznie lepiej obsłużony z tabelą, która zawiera kolumny dla name , height , awesomeness itp.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przerwij program PL/SQL

  2. Odwołanie klucza obcego do tabeli w innym schemacie

  3. PostgreSQL kontra Oracle:różnica w kosztach, łatwość użytkowania i funkcjonalność

  4. Jak dodać serwer zarządzania w R12.2?

  5. Statystyki tabeli GTT i SYS.WRI$_OPTSTAT_TAB_HISTORY