TOP (Entity SQL)

La clausola SELECT può includere una sottoclausola TOP facoltativa dopo il modificatore ALL/DISTINCT facoltativo. La sottoclausola TOP specifica che verrà restituito solo il primo rowset del risultato della query.

Sintassi

[ TOP (n) ]

Argomenti

nEspressione numerica che specifica il numero di righe da restituire. n potrebbero essere un singolo valore letterale numerico o un singolo parametro.

Osservazioni:

L'espressione TOP deve essere un singolo valore letterale numerico o un singolo parametro. Se viene usato un valore letterale costante, il tipo del valore letterale deve essere implicitamente promuovibile a Edm.Int64 (byte, int16, int32 o int64 oppure qualsiasi tipo di provider mappato a un tipo promuovibile a Edm.Int64) e il suo valore deve essere maggiore o uguale a zero. In caso contrario, viene generata un'eccezione. Se come espressione viene usato un parametro, anche il tipo di parametro deve essere implicitamente promuovibile a Edm.Int64, ma non verrà eseguita alcuna convalida effettiva del valore del parametro durante la compilazione in quanto per i valori dei parametri viene usata l'associazione tardiva.

Di seguito è illustrato un esempio di espressione TOP costante.

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

Di seguito è illustrato un esempio di espressione TOP con parametri:

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

L'espressione TOP non è deterministica, a meno che la query non venga ordinata. Se è necessario un risultato deterministico, usare le sottoclausole SKIP e LIMIT nella clausola ORDER BY . TOP e SKIP/LIMIT si escludono a vicenda.

Esempio

Nella query Entity SQL seguente viene usato TOP per specificare la riga superiore da restituire dal risultato della query. La query è basata sul modello Sales di AdventureWorks. Per compilare ed eseguire questa query, effettuare le operazioni seguenti:

  1. Seguire la procedura indicata in How to: Execute a Query that Returns StructuralType Results.

  2. Passare la query seguente come argomento al metodo ExecuteStructuralTypeQuery :

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

Vedi anche