Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изберете n-тия ред в таблица с база данни на SQL?

Има начини да направите това в незадължителни части на стандарта, но много бази данни поддържат свой собствен начин да го направите.

Един наистина добър сайт, който говори за това и други неща, е http://troels. arvin.dk/db/rdbms/#select-limit .

По принцип PostgreSQL и MySQL поддържат нестандартното:

SELECT...
LIMIT y OFFSET x 

Oracle, DB2 и MSSQL поддържат стандартните функции на прозорец:

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

(която току-що копирах от сайта, свързан по-горе, тъй като никога не използвам тези БД)

Актуализация: От PostgreSQL 8.4 се поддържат стандартните функции за прозорец, така че очаквайте втория пример да работи и за PostgreSQL.

Актуализация: SQLite добавена поддръжка на прозоречни функции във версия 3.25.0 на 2018-09-15, така че и двете форми работят и в SQLite.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да увеличите максималния брой връзки в MySQL

  2. Свързване с MySQL от Android с JDBC

  3. Как да изпращате имейл от MySQL 5.1

  4. Сравнение на пълнотекстова търсачка - Lucene, Sphinx, Postgresql, MySQL?

  5. Надстройте MySQL до MariaDB 10 (Част 1 – Инсталирайте MariaDB 5.5)