sql >> Databáze >  >> RDS >> Mysql

Jak vybrat n-tý řádek v tabulce databáze SQL?

Existují způsoby, jak toho dosáhnout ve volitelných částech standardu, ale mnoho databází podporuje jejich vlastní způsob.

Opravdu dobrá stránka, která o tomhle a dalších věcech mluví, je http://troels. arvin.dk/db/rdbms/#select-limit .

PostgreSQL a MySQL v zásadě podporují nestandardní:

SELECT...
LIMIT y OFFSET x 

Oracle, DB2 a MSSQL podporují standardní funkce oken:

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
    columns
  FROM tablename
) AS foo
WHERE rownumber <= n

(který jsem právě zkopíroval z výše odkazovaného webu, protože tyto databáze nikdy nepoužívám)

Aktualizace: Od PostgreSQL 8.4 jsou podporovány standardní funkce oken, takže očekávejte, že druhý příklad bude fungovat i pro PostgreSQL.

Aktualizace: SQLite přidal podporu funkcí okna ve verzi 3.25.0 dne 2018-09-15, takže obě formy fungují také v SQLite.



  1. Vygenerujte řadu dat – jako vstup použijte typ data

  2. Získání oprávnění ke spuštění xp_cmdshell

  3. Jak se vyhnout použití + v čísle verze s SQLiteAssetHelper

  4. Jak nakonfigurovat databázovou poštu na serveru SQL Server