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

Zamawianie ciągów podczas łączenia w Oracle

aby uzyskać uporządkowaną listę, jest kilka sposobów. najprostszy to :

select id, str
  from (select id, 
               wm_concat('level : ' || to_char(nvl(eventDate,SYSDATE - 365 * 100))) 
                 over (partition by id order by eventdate) str,
               row_number() over (partition by id order by eventdate desc) rn
         from Mytable)
 where rn = 1;

lub jeśli używasz agregatu zdefiniowanego przez użytkownika „stragg”:

  select id, str
  from (select id, 
               string_agg('level : ' || to_char(nvl(eventDate,SYSDATE - 365 * 100))) 
                 over (partition by id order by eventdate) str,
               row_number() over (partition by id order by eventdate desc) rn
         from Mytable)
 where rn = 1;

np.

SQL> select id, str
  2    from (select id,
  3                 string_agg('level : ' || to_char(nvl(eventDate,SYSDATE - 365 * 100)))
  4                   over (partition by id order by eventdate) str,
  5                 row_number() over (partition by id order by eventdate desc) rn
  6           from Mytable)
  7   where rn = 1;

        ID STR
---------- ----------------------------------------------------------------------
         1 level : 27-MAR-08,level : 27-JAN-09,level : 02-APR-10
         2 level : 07-JUN-06,level : 02-NOV-08,level : 27-DEC-08
         3 level : 27-MAR-06,level : 02-APR-10,level : 27-JUL-10



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

  2. Korzystanie z OraclePreparedStatement z połączeniem DBCP

  3. Jak mogę policzyć liczbę słów w ciągu w Oracle?

  4. Oracle - porównywanie domyślnej wartości kolumny

  5. Na podstawie dnia kolumny połączonego z datą jako nagłówkiem