Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да изберете топ 1 и подредени по дата в Oracle SQL?

... where rownum = 1 order by trans_date desc

Това избира един запис, избран произволно (where rownum = 1 ) и след това сортира този един запис (order by trans_date desc ).

Както е показано от Иван, можете да използвате подзаявка, където поръчвате записите и след това да запазите първия запис с where rownum = 1 във външната заявка. Това обаче е изключително специфично за Oracle и нарушава стандарта SQL, при който резултатът от подзаявката се счита за неподреден (т.е. клаузата за подреждане може да бъде игнорирана от СУБД).

Така че е по-добре да изберете стандартното решение. От Oracle 12c:

select * 
from table_name 
order by trans_date desc
fetch first 1 row only;

В по-стари версии:

select *
from
(
  select t.*, row_number() over (order by trans_date desc) as rn
  from table_name t
)
where rn = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извадите 2 дати в Oracle, за да получите резултата за час и минута

  2. Как да създадете PL/SQL пакети в базата данни на Oracle

  3. Как да инсталирам ruby-oci8?

  4. Сравнение на доставчици, съвместими с Entity Framework за Oracle?

  5. Oracle REGEXP_LIKE и граници на думите