TOP (Entity SQL)

Der SELECT-Klausel kann hinter dem optionalen ALL/DISTINCT-Modifizierer eine TOP-Unterklausel angefügt werden. Die TOP-Unterklausel gibt an, dass nur der erste Zeilensatz aus dem Abfrageergebnis zurückgegeben wird.

[ TOP (n) ]

Argumente

  • n
    Der numerische Ausdruck, der die Anzahl der zurückzugebenden Zeilen angibt. n könnte ein einzelnes numerisches Literal oder ein einzelner Parameter sein.

Hinweise

Beim TOP-Ausdruck muss es sich entweder um ein einzelnes numerisches Literal oder um einen einzelnen Parameter handeln. 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. Andernfalls wird eine Ausnahme ausgelöst. 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.

Im Folgenden finden Sie ein Beispiel für einen konstanten TOP-Ausdruck:

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

Im Folgenden finden Sie ein Beispiel für einen parametrisierten TOP-Ausdruck:

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

Wenn die Abfrage nicht sortiert ist, ist TOP nicht deterministisch. Wenn ein deterministisches Ergebnis benötigt wird, sollte die SKIP-Unterklausel und die LIMIT-Unterklausel in der ORDER BY-Klausel verwendet werden. TOP und SKIP/LIMIT schließen sich gegenseitig aus.

Beispiel

Die folgende Entity SQL -Abfrage verwendet TOP, um die oberste Zeile, die vom Abfrageergebnis zurückgegeben werden soll, anzugeben. Diese Abfrage beruht auf dem AdventureWorks Sales-Modell. Führen Sie folgende Schritte durch, um diese Abfrage zu kompilieren und auszuführen:

  1. Verwenden Sie das Verfahren unter Gewusst wie: Ausführen einer Abfrage, die StructuralType-Ergebnisse zurückgibt (EntityClient).

  2. Übergeben Sie die folgende Abfrage als Argument an die ExecuteStructuralTypeQuery-Methode:

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

Siehe auch

Verweis

SELECT (Entity SQL)
SKIP (Entity SQL)
LIMIT (Entity SQL)
ORDER BY (Entity SQL)

Konzepte

Entity SQL-Referenz