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

Zapytanie Pivot / Crosstab w Oracle 10g (dynamiczny numer kolumny)

Oracle 11g jako pierwszy obsługuje PIVOT/UNPIVOT, więc musisz użyć:

  SELECT t.username,
         MAX(CASE WHEN t.product = 'Chair' THEN t.numberpurchases ELSE NULL END) AS chair,
         MAX(CASE WHEN t.product = 'Table' THEN t.numberpurchases ELSE NULL END) AS tbl,
         MAX(CASE WHEN t.product = 'Bed' THEN t.numberpurchases ELSE NULL END) AS bed
    FROM TABLE t
GROUP BY t.username

Możesz użyć DECODE, ale CASE jest obsługiwany od 9i.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak używać regexp_like Oracle w Hibernate HQL?

  2. Oracle:usuwanie od dołu

  3. pobierz kolumnę z małymi literami z zestawu wyników, używając nazwy kolumny

  4. Pokaż kolumny z bieżącego i poprzedniego roku w Oracle

  5. Jak i kiedy są używane indeksy w operacjach INSERT i UPDATE?