Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare l'ennesima riga in una tabella di database SQL?

Ci sono modi per farlo nelle parti opzionali dello standard, ma molti database supportano il proprio modo di farlo.

Un ottimo sito che parla di questo e di altro è http://troels. arvin.dk/db/rdbms/#select-limit .

Fondamentalmente, PostgreSQL e MySQL supportano il non standard:

SELECT...
LIMIT y OFFSET x 

Oracle, DB2 e MSSQL supportano le funzioni di windowing standard:

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

(che ho appena copiato dal sito linkato sopra dato che non uso mai quei DB)

Aggiornamento: A partire da PostgreSQL 8.4 sono supportate le funzioni di windowing standard, quindi aspettati che il secondo esempio funzioni anche per PostgreSQL.

Aggiornamento: SQLite ha aggiunto il supporto delle funzioni della finestra nella versione 3.25.0 del 15-09-2018, quindi entrambi i moduli funzionano anche in SQLite.