Выбрать 10 строк в SQL можно через ограничение результата. В SQL Server используют TOP 10, в MySQL, PostgreSQL и SQLite — LIMIT 10, а в некоторых базах встречается вариант FETCH FIRST 10 ROWS ONLY
Главное правило: если важен порядок, добавляйте ORDER BY. Без сортировки база может вернуть любые 10 строк, и при следующем запуске порядок не обязан быть таким же
SQL Server: TOP 10
SELECT TOP 10
id,
name,
price
FROM products
ORDER BY id;
Этот запрос вернет первые 10 товаров по возрастанию id
Если нужны 10 самых дорогих товаров:
SELECT TOP 10
id,
name,
price
FROM products
ORDER BY price DESC;
TOP пишется после SELECT, а не в конце запроса. Это частая ошибка у тех, кто переходит с MySQL или PostgreSQL
MySQL, PostgreSQL и SQLite: LIMIT 10
SELECT
id,
name,
price
FROM products
ORDER BY id
LIMIT 10;
В этих базах LIMIT пишется в конце запроса после сортировки
Для 10 самых дорогих товаров:
SELECT
id,
name,
price
FROM products
ORDER BY price DESC
LIMIT 10;
FETCH FIRST
В некоторых базах работает синтаксис:
SELECT
id,
name,
price
FROM products
ORDER BY id
FETCH FIRST 10 ROWS ONLY;
Он выглядит ближе к стандартному SQL, но в учебных материалах чаще встречаются TOP и LIMIT, потому что они привычнее для SQL Server, PostgreSQL и MySQL
Выбрать 10 строк со смещением
Иногда нужно не первые 10 строк, а следующую страницу. В SQL Server можно использовать OFFSET и FETCH:
SELECT
id,
name,
price
FROM products
ORDER BY id
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
SELECT
id,
name,
price
FROM products
ORDER BY id
LIMIT 10 OFFSET 10;
Такой запрос вернет вторую страницу по 10 строк, если считать первую страницу строками с 1 по 10
Мини-практика
Создайте таблицу и выберите 10 строк:
CREATE TABLE numbers_demo (
id int NOT NULL PRIMARY KEY,
title nvarchar(50) NOT NULL
);
INSERT INTO numbers_demo (id, title)
VALUES
(1, N'Строка 1'),
(2, N'Строка 2'),
(3, N'Строка 3'),
(4, N'Строка 4'),
(5, N'Строка 5'),
(6, N'Строка 6'),
(7, N'Строка 7'),
(8, N'Строка 8'),
(9, N'Строка 9'),
(10, N'Строка 10'),
(11, N'Строка 11');
SELECT TOP 10 *
FROM numbers_demo
ORDER BY id;
Проверьте, что строка с id = 11 не попала в результат
Частые ошибки
- Пишут
LIMITв SQL Server - Пишут
TOPв PostgreSQL или MySQL - Не добавляют
ORDER BYи получают нестабильный результат - Думают, что первые 10 строк всегда означают первые по
id - Путают
OFFSETи номер страницы - Используют
SELECT *, хотя в отчете нужны только конкретные столбцы
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- BETWEEN SQL: как выбрать значения в диапазоне
- SQL-курсы: как выбрать обучение и не потерять время
- Как найти дубликаты в SQL: GROUP BY, HAVING и проверка строк
- Как объединить столбцы в SQL: CONCAT, оператор || и сложение строк



