Partager via


TOP (Entity SQL)

La clause SELECT peut avoir une sous-clause TOP facultative en suivant le modificateur ALL/DISTINCT facultatif. La sous-clause TOP spécifie que seul le premier jeu de lignes est retourné à partir du résultat de la requête.

Syntaxe

[ TOP (n) ]

Les arguments

n Expression numérique qui spécifie le nombre de lignes à renvoyer. n peut être un littéral numérique unique ou un seul paramètre.

Remarques

L’expression TOP doit être un littéral numérique unique ou un paramètre unique. Si un littéral constant est utilisé, le type littéral doit être implicitement promotable à Edm.Int64 (octet, int16, int32 ou int64 ou tout type de fournisseur mappé à un type qui est promotable à Edm.Int64) et sa valeur doit être supérieure ou égale à zéro. Sinon, une exception est levée. Si un paramètre est utilisé comme expression, le type de paramètre doit également être implicitement promotable à Edm.Int64, mais il n’y aura pas de validation de la valeur réelle du paramètre pendant la compilation, car les valeurs de paramètre sont limitées tardivement.

Voici un exemple d’expression TOP constante :

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

Voici un exemple d’expression TOP paramétrable :

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

TOP n’est pas déterministe, sauf si la requête est triée. Si vous avez besoin d’un résultat déterministe, utilisez les sous-clauses SKIP et LIMIT dans la clause ORDER BY . Top et SKIP/LIMIT s’excluent mutuellement.

Exemple :

La requête Entity SQL suivante utilise le TOP pour spécifier la première ligne à retourner à partir du résultat de la requête. La requête est basée sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :

  1. Suivez la procédure dans How to : Execute a Query that Returns StructuralType Results.

  2. Transmettez la requête suivante en tant qu’argument à la ExecuteStructuralTypeQuery méthode :

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

Voir aussi