Что означает TOP 1 в запросе sql? - PullRequest
3 голосов
/ 19 мая 2009

Что означает TOP 1 в запросе sql?

SELECT TOP 1 RequestId 
FROM PublisherRequests

Ответы [ 6 ]

17 голосов
/ 19 мая 2009

Я не согласен с «Порядок будет определяться на основе кластеризованного ключа в этой таблице».

Электронная документация по SQL Server довольно явная : Если в запросе нет предложения ORDER BY, порядок строк будет произвольным

репродукция, демонстрирующая, что это не всегда так: Без ORDER BY порядок сортировки по умолчанию отсутствует.

10 голосов
/ 19 мая 2009

Он выберет первую строку из таблицы PublisherRequests.

РЕДАКТИРОВАТЬ: [Порядок будет определяться на основе кластеризованного ключа в этой таблице - это утверждение неверно]. На самом деле, согласно выводам Алекса и согласно BOL, порядок строк будет произвольным.

Ссылка может быть найдена здесь .

8 голосов
/ 19 мая 2009

Запрос в примере вернет первое RequestID из таблицы PublisherRequests.
Порядок результатов без предложения Order By является произвольным. Таким образом, ваш пример вернет произвольный RequestID (то есть первый RequestID в произвольно упорядоченном списке RequestID с).
Вы можете изменить порядок, указав Order By.
Например, чтобы получить последний введенный идентификатор, вы можете написать

Select Top 1 RequestID
From PublisherRequests
Order By RequestID Desc

Обновлено, чтобы включить исправленную информацию о заказе от @ Киртан Гор и @ AlexK

3 голосов
/ 19 мая 2009

TOP может использоваться для возврата необходимого количества строк или в процентах от общего числа включенных строк - для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ms189463.aspx

2 голосов
/ 19 мая 2009

Это означает, что возвращается только 1 верхняя строка, то есть первая строка.

0 голосов
/ 19 мая 2009

Ограничивает количество строк, возвращаемых запросом, до 1. Это так же, как и предел 1 в MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...