Поделиться через


TOP (Entity SQL)

Предложение SELECT может иметь необязательное вложенное предложение TOP, которое следует за необязательным модификатором ALL/DISTINCT. Предложение TOP указывает, что в результатах запроса возвращается только набор первых строк.

Синтаксис

[ TOP (n) ]

Аргументы

n Числовое выражение, указывающее количество возвращаемых строк. n может быть одним числовым литералом или одним параметром.

Замечания

Выражение TOP должно быть одним числовым литералом или одним параметром. При использовании постоянного литерала он должен поддерживать неявное повышение до Edm.Int64 (byte, int16, int32 и int64 или любой тип поставщика, который сопоставляется с типом, поддерживающим повышение до Edm.Int64), а его значение должно быть больше или равно нулю. В противном случае возникнет исключение. Если в качестве выражения используется параметр, то тип параметра также должен поддерживать неявное повышение до Edm.Int64, однако проверка фактического значения параметра во время компиляции проводиться не будет, поскольку значения параметров связываются в режиме позднего связывания.

Ниже приведен пример постоянного выражения TOP:

select distinct top(10) c.a1, c.a2 from T as a

Ниже приведен пример параметризованного выражения TOP:

select distinct top(@topParam) c.a1, c.a2 from T as a

Выражение TOP является недетерминированным, если запрос не отсортирован. При необходимости в детерминированном результате используйте вложенные предложения SKIP и LIMIT в предложении ORDER BY . Предложения TOP и SKIP/LIMIT являются взаимоисключающими.

Пример

Следующий запрос Entity SQL использует top, чтобы указать верхнюю строку, возвращаемую из результата запроса. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Выполните процедуру из статьи How to: Execute a Query that Returns StructuralType Results.

  2. Передайте следующий запрос в качестве аргумента методу ExecuteStructuralTypeQuery :

    SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact
    

См. также