TOPO (Entity SQL)
A cláusula SELECT pode ter uma cláusula as subjanelas TOP opcional após o modificador opcional de ALL/DISTINCT. A cláusula subpropriedades TOP especifica que apenas definir primeiro as linhas será retornado do resultado da consulta.
Sintaxe
[ TOP (n) ]
Argumentos
n
A expressão numérica que especifica o número de linhas a serem retornadas. n
pode ser um único literal numérico ou um único parâmetro.
Comentários
A expressão TOP deve ser um único literal numérico ou um único parâmetro. Se um literal constante é usado, o tipo literal deve ser implicitamente promotable a Edm.Int64 (byte, int16 ou int32, int64 ou qualquer tipo de provedor que o mapeamento para um tipo que é promotable a Edm.Int64) e seu valor deve ser maior ou igual a zero. Se não uma exceção será lançada. Se um parâmetro é usado como uma expressão, o tipo de parâmetro deve também ser implicitamente promotable a Edm.Int64, mas não haverá validação do valor do parâmetro real durante a compilação porque valores de parâmetro são delimitados tarde.
A seguir está um exemplo da expressão de TOP da constante:
select distinct top(10) c.a1, c.a2 from T as a
O seguinte é um exemplo de expressão TOP parametrizada:
select distinct top(@topParam) c.a1, c.a2 from T as a
A TOP é não determinística a menos que a consulta é classificada. Se você precisar de um resultado determinístico, use as subcláusulas SKIP e LIMIT na cláusula ORDER BY. A TOP e os SKIP/LIMIT são mutuamente exclusivos.
Exemplo
A seguinte consulta do Entity SQL usa TOP para especificar a uma linha superior a ser retornado do resultado da consulta. A consulta é baseada no modelo de vendas AdventureWorks. Para compilar e executar essa consulta, siga estas etapas:
Siga o procedimento em Como executar uma consulta que retorna resultados de StructuralType.
Passe a consulta a seguir como um argumento para o método
ExecuteStructuralTypeQuery
:SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact