TOP (SQL de entidade)
A cláusula SELECT pode ter uma subcláusula TOP opcional seguindo o modificador opcional ALL/DISTINCT. A subcláusula TOP especifica que apenas o primeiro conjunto de 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.
Observações
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 promocional para Edm.Int64 (byte, int16, int32 ou int64 ou qualquer tipo de provedor que mapeia para um tipo que é promocional para Edm.Int64) e seu valor deve ser maior ou igual a zero. Caso contrário, será levantada uma exceção. Se um parâmetro for usado como uma expressão, o tipo de parâmetro também deve ser implicitamente promocional para Edm.Int64, mas não haverá validação do valor real do parâmetro durante a compilação porque os valores dos parâmetros são limitados tardiamente.
Segue-se um exemplo de expressão TOP constante:
select distinct top(10) c.a1, c.a2 from T as a
Segue-se um exemplo de expressão TOP parametrizada:
select distinct top(@topParam) c.a1, c.a2 from T as a
TOP não é determinístico, a menos que a consulta seja classificada. Se você precisar de um resultado determinístico, use as subcláusulas SKIP e LIMIT na cláusula ORDER BY . O TOP e o SKIP/LIMIT excluem-se mutuamente.
Exemplo
A consulta Entity SQL a seguir usa o TOP para especificar a linha superior a ser retornada do resultado da consulta. A consulta é baseada no Modelo de Vendas AdventureWorks. Para compilar e executar esta consulta, siga estes passos:
Siga o procedimento em Como: Executar uma consulta que retorna resultados StructuralType.
Passe a seguinte consulta como um argumento para o
ExecuteStructuralTypeQuery
método:SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact