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

Łączenie wielu wierszy w jeden wiersz bez agregacji [Oracle]

Jeśli wiesz, że masz trzy kolumny, wymień je i zagreguj:

select max(case when seqnum = 1 then type end) as type1,
       max(case when seqnum = 1 then date end) as date1,
       max(case when seqnum = 1 then amount end) as amount1,
       max(case when seqnum = 2 then type end) as type2,
       max(case when seqnum = 2 then date end) as date2,
       max(case when seqnum = 2 then amount end) as amount2,
       max(case when seqnum = 3 then type end) as type3,
       max(case when seqnum = 3 then date end) as date3,
       max(case when seqnum = 3 then amount end) as amount3       
from (select t.*, rownum as seqnum
      from t
     ) t;

Jeśli nie znasz liczby zwracanych kolumn, musisz użyć dynamicznego SQL (execute immediate ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PLSQL skraca daty i godziny do 15-minutowych bloków

  2. Zmień klucz podstawowy

  3. ORA-01775:zapętlony łańcuch synonimów

  4. Nie można poprawnie zainstalować Oracle Developer Tools for Visual Studio 2019

  5. Czy istnieje sposób na uzyskanie numeru wiersza w Mysql, takiego jak rownum w Oracle?