sql >> Databasteknik >  >> RDS >> Oracle

Näst högsta värde från Oracle DB:s tabell

Jag skulle använda en fönsterfunktion:

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

Jag tror inte att det kommer att vara någon stor prestandaskillnad för din fråga (särskilt inte med ett index på balance ) men enligt mig är det lättare att läsa och underhålla.



  1. PostgreSQL:VÄLJ VAR mindre än 15 minuter gammal

  2. CodeIgniter - Felnummer:1146 (tabellen existerar inte efter att ha utfört ett CREATE TABLE-kommando)

  3. Hur reparerar man ett skadat MPTT-träd (kapslat set) i databasen med SQL?

  4. Infoga i MySQL från R