Compartilhar via


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:

  1. Siga o procedimento em Como executar uma consulta que retorna resultados de StructuralType.

  2. Passe a consulta a seguir como um argumento para o método ExecuteStructuralTypeQuery:

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

Confira também