Compartilhar via


TOP (Entity SQL)

A cláusula SELECT pode ter uma sub-cláusula TOP opcional seguindo o modificador ALL/DISTINCT opcional. A sub-cláusula TOP especifica que somente 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 literal numérico único ou um único parâmetro.

Observações

A expressão TOP deve ser um literal numérico único ou um único parâmetro. Se um literal constante for usado, o tipo literal deverá ser implicitamente promovível para Edm.Int64 (byte, int16, int32 ou int64 ou qualquer tipo de provedor que mapeia para um tipo que seja promovível para Edm.Int64) e seu valor deve ser maior ou igual a zero. Caso contrário, uma exceção será gerada. Se um parâmetro for usado como uma expressão, o tipo de parâmetro também deverá ser implicitamente promovível para Edm.Int64, mas não haverá validação do valor real do parâmetro durante a compilação porque os valores de parâmetro são limitados tardiamente.

Veja a seguir um exemplo de expressão TOP constante:

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

Veja a seguir 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 sub-cláusulas SKIP e LIMIT na cláusula ORDER BY . O TOP e SKIP/LIMIT são mutuamente exclusivos.

Exemplo

A consulta SQL da entidade a seguir usa o TOP para especificar a primeira linha a ser retornada 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 How to: Execute a Query that Returns StructuralType Results.

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

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

Consulte também