Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Druga najwyższa wartość z tabeli Oracle DB

Użyłbym funkcji okna:

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

Nie sądzę, że będzie duża różnica w wydajności twojego zapytania (szczególnie nie z indeksem balance ) ale moim zdaniem jest to łatwiejsze do odczytania i utrzymania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd ORA-01804 podczas próby załadowania Oracle dbDriver

  2. Wykonywanie zbiorczych aktualizacji za pomocą procedur składowanych MyBatis i Oracle

  3. Zwrócono mój kursor w mojej funkcji Oracle PL/SLQ, ale nie wszystkie wiersze są zwracane. Czy możesz zwrócić tylko 1 wiersz w funkcji Oracle pl/sql?

  4. Wykonaj natychmiast z typem innym niż SQL

  5. Aktualizacja sterowania siecią po ręcznej aktualizacji bazy danych