sql >> Databasteknik >  >> RDS >> Oracle

Hur man får näst största eller tredje största posten från en tabell

SELECT *
FROM (
  SELECT some_column, 
         row_number() over (order by your_sort_column desc) as row_num
  FROM some_table
) t
WHERE row_num = 3


Om du förväntar dig att mer än en rad ska ha samma värde i your_sort_column du kan också använda rank()-funktionen

SELECT *
FROM (
  SELECT some_column, 
         rank() over (order by your_sort_column desc) as row_rank
  FROM some_table
) t
WHERE row_rank = 3
Detta kan returnera mer än en rad..

  1. Hur kan jag införa flera villkor i LIKE-operatorn?

  2. Körs servern på host localhost (::1) och accepterar TCP/IP-anslutningar på port 5432?

  3. Hur man får första och sista dagen i föregående månad (med tidsstämpel) i SQL Server

  4. Stöder Oracle fulltextsökning?