TOP (Entity SQL)TOP (Entity SQL)

Der SELECT-Klausel kann hinter dem optionalen ALL/DISTINCT-Modifizierer eine TOP-Unterklausel angefügt werden.The SELECT clause can have an optional TOP sub-clause following the optional ALL/DISTINCT modifier. Die TOP-Unterklausel gibt an, dass nur der erste Zeilensatz aus dem Abfrageergebnis zurückgegeben wird.The TOP sub-clause specifies that only the first set of rows will be returned from the query result.

SyntaxSyntax

[ TOP (n) ]

ArgumenteArguments

n der numerische Ausdruck, der die Anzahl der zurück zugegenden Zeilen angibt.n The numeric expression that specifies the number of rows to be returned. n könnte ein einzelnes numerisches Literal oder ein einzelner Parameter sein.n could be a single numeric literal or a single parameter.

HinweiseRemarks

Beim TOP-Ausdruck muss es sich entweder um ein einzelnes numerisches Literal oder um einen einzelnen Parameter handeln.The TOP expression must be either a single numeric literal or a single parameter. Wenn ein konstantes Literal verwendet wird, muss der Literaltyp implizit zu „Edm.Int64“ heraufstufbar sein („byte“, „int16“, „int32“ oder „int64“ oder ein Anbietertyp, der einem zu „Edm.Int64“ heraufstufbaren Typ zugeordnet wird) und über einen Wert verfügen, der größer oder gleich null ist.If a constant literal is used, the literal type must be implicitly promotable to Edm.Int64 (byte, int16, int32 or int64 or any provider type that maps to a type that is promotable to Edm.Int64) and its value must be greater than or equal to zero. Andernfalls wird eine Ausnahme ausgelöst.Otherwise an exception will be raised. Wird ein Parameter als Ausdruck verwendet, muss der Parametertyp ebenfalls implizit zu „Edm.Int64“ heraufstufbar sein. Es wird jedoch während der Kompilierung keine Überprüfung des tatsächlichen Parameterwerts durchgeführt, da die Parameterwerte spät gebunden werden.If a parameter is used as an expression, the parameter type must also be implicitly promotable to Edm.Int64, but there will be no validation of the actual parameter value during compilation because the parameter values are late bounded.

Im Folgenden finden Sie ein Beispiel für einen konstanten TOP-Ausdruck:The following is an example of constant TOP expression:

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

Im folgenden finden Sie ein Beispiel für einen parametrisierten Top-Ausdruck:The following is an example of parameterized TOP expression:

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

Wenn die Abfrage nicht sortiert ist, ist TOP nicht deterministisch.TOP is non-deterministic unless the query is sorted. Wenn ein deterministisches Ergebnis benötigt wird, sollte die SKIP -Unterklausel und die LIMIT -Unterklausel in der ORDER BY -Klausel verwendet werden.If you require a deterministic result, use the SKIP and LIMIT sub-clauses in the ORDER BY clause. TOP und SKIP/LIMIT schließen sich gegenseitig aus.The TOP and SKIP/LIMIT are mutually exclusive.

BeispielExample

Die folgende Entity SQLEntity SQL -Abfrage verwendet TOP, um die oberste Zeile, die vom Abfrageergebnis zurückgegeben werden soll, anzugeben.The following Entity SQLEntity SQL query uses the TOP to specify the top one row to be returned from the query result. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell.The query is based on the AdventureWorks Sales Model. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:To compile and run this query, follow these steps:

  1. Verwenden Sie das Verfahren unter How to: Execute a Query that Returns StructuralType Results.Follow the procedure in How to: Execute a Query that Returns StructuralType Results.

  2. Übergeben Sie die folgende Abfrage als Argument an die ExecuteStructuralTypeQuery -Methode:Pass the following query as an argument to the ExecuteStructuralTypeQuery method:

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

Siehe auchSee also