sql >> Database teknologi >  >> RDS >> Oracle

Næsthøjeste værdi fra Oracle DB's tabel

Jeg ville bruge en vinduesfunktion:

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

Jeg tror ikke, der vil være den store forskel i ydeevnen på din forespørgsel (især ikke med et indeks på balance ), men efter min mening er det nemmere at læse og vedligeholde.



  1. Opdater kun MYSQL-feltet, hvis feltet indeholder null eller 0

  2. Definition af forskellige variabler fra en SQL-databasetabel - bedre praksis?

  3. Brugeragent-header - forkortelse for mysql-lagring

  4. oracle PL/SQL hvordan man beregner range ip for IPv6 cidr