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

Oś Oracle10g SQL

Wolę używać rozwiązania GROUP BY z wyrażeniem CASE.

SELECT 
    id,
    MAX(CASE WHEN emailRank = 1 THEN email END) AS [1],
    MAX(CASE WHEN emailRank = 2 THEN email END) AS [2],
    MAX(CASE WHEN emailRank = 3 THEN email END) AS [3],
    MAX(CASE WHEN emailRank = 4 THEN email END) AS [4]
FROM (
    SELECT
        id, 
        email, 
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY email) AS emailRank
    FROM TABLE
)
GROUP BY id;

Oryginalny przykład Pivot miał typ i brakowało ")". Wypróbuj następujące rozwiązania, aby uruchomić oś obrotu:

pivot( max(email) FOR emailRank IN (1,2,3));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wyrocznia - jakie oświadczenia należy popełnić?

  2. Jak dowiedzieć się, kiedy dana tabela została utworzona w Oracle?

  3. Funkcja ASIN() w Oracle

  4. SQL Brakuje prawego nawiasu w kolejności według instrukcji

  5. Komunikat o błędzie programu sqldeveloper:Karta sieciowa nie może nawiązać błędu połączenia