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 являются взаимоисключающими.
См. также
Справочник
SELECT (язык Entity SQL)
SKIP (язык Entity SQL)
LIMIT (язык Entity SQL)
ORDER BY (язык Entity SQL)