Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara memilih 1 teratas dan diurutkan berdasarkan tanggal di Oracle SQL?

... where rownum = 1 order by trans_date desc

Ini memilih satu catatan yang dipilih secara sewenang-wenang (where rownum = 1 ) dan kemudian mengurutkan satu record ini (order by trans_date desc ).

Seperti yang ditunjukkan oleh Ivan Anda dapat menggunakan subquery di mana Anda memesan catatan dan kemudian menyimpan catatan pertama dengan where rownum = 1 dalam kueri luar. Namun, ini sangat spesifik untuk Oracle dan melanggar standar SQL di mana hasil subquery dianggap tidak berurutan (yaitu klausa urutan per dapat diabaikan oleh DBMS).

Jadi lebih baik gunakan solusi standar. Pada Oracle 12c:

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

Dalam versi yang lebih lama:

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. Oracle 12c - pilih string setelah kemunculan karakter terakhir

  2. ACOS() Fungsi di Oracle

  3. Kesalahan saat Perbarui Gabung

  4. Kursor Untuk Loop dengan Pernyataan SQL dinamis

  5. Oracle Setara dengan MySQL INSERT IGNORE?