sql >> Database >  >> RDS >> Oracle

Op één na hoogste waarde uit de tabel van Oracle DB

Ik zou een vensterfunctie gebruiken:

select *
from (
  select u.*, dense_rank() over (order by balance desc) as rnk
  from users u
) t
where rnk = 2;

Ik denk niet dat er een groot prestatieverschil zal zijn voor uw zoekopdracht (vooral niet met een index op balance ) maar naar mijn mening is het gemakkelijker te lezen en te onderhouden.



  1. mysql trage zoekopdracht

  2. Hoe tabellen vooraf in de INNODB-bufferpool te laden met MySQL?

  3. Converteer speciale string naar datum in H2

  4. krijg een kolom in kleine letters van ResultSet met kolomnaam