Подтвердить что ты не робот

Разница между верхним и конечным ключевым словом в SQL

Быстрый вопрос. Предположим, у меня есть следующие два запроса:

SELECT TOP 2 * FROM Persons;

и

SELECT * FROM Persons limit 2;

Я хочу знать разницу между выполнением вышеуказанных 2 запросов? В основном, я хочу знать, когда следует использовать ключевое слово limit и когда целесообразно использовать ключевое слово top. Также, как база данных возвращает результаты на основе вышеуказанных 2 запросов.

4b9b3361

Ответ 1

Если вы используете SQL Server, используйте TOP, если вы используете MySQL или Postgres использовать Limit!

AFAIK нет продукта, который в настоящее время поддерживает оба. Здесь один список текущих реализаций и здесь еще один (охватывает больше продуктов, но менее подробно)

Ответ 2

Как указано в моем комментарии к Мартину Смиту выше, есть продукты, которые поддерживают как LIMIT, так и TOP (как вы можете видеть здесь). Разница в том, что TOP выбирает только первые n записей, но LIMIT позволяет определять смещение для получения определенного диапазона записей:

SELECT * FROM ... LIMIT 5 OFFSET 10

Этот оператор выбирает первые 5 записей, пропустив 10 записей, и это невозможно с помощью TOP.

Приведенный выше пример проверяется только на связанную выше DBS I. Я не проверял стандарт SQL из-за нехватки времени.

Ответ 3

TOP и LIMIT работают на amazon Redshift

Ответ 4

limit работает на MySQL и PostgreSQL, top работает на SQL Server, rownum работает с Oracle.

Ответ 5

Нет никакой разницы. Ключевые слова TOP и LIMIT работают одинаково и возвращают то же самое.

Ответ 6

одна большая ошибка, LIMIT медленно, потому что select является полным, а затем сервер базы данных возвращает только ограниченные данные. Когда это возможно, используется для TOP.