TOP (Entity SQL)

Klauzula SELECT może mieć opcjonalną klauzulę podrzędną TOP po opcjonalnym modyfikatorze ALL/DISTINCT. Klauzula podrzędna TOP określa, że z wyniku zapytania zostanie zwrócony tylko pierwszy zestaw wierszy.

Składnia

[ TOP (n) ]

Argumenty

n Wyrażenie liczbowe określające liczbę wierszy do zwrócenia. n może być pojedynczym literałem liczbowym lub pojedynczym parametrem.

Uwagi

Wyrażenie TOP musi być pojedynczym literałem liczbowym lub pojedynczym parametrem. Jeśli jest używany literał stały, typ literału musi być niejawnie promotable do Edm.Int64 (bajt, int16, int32 lub int64 lub dowolny typ dostawcy mapowany na typ, który jest promotable do Edm.Int64), a jego wartość musi być większa lub równa zero. W przeciwnym razie zostanie zgłoszony wyjątek. Jeśli parametr jest używany jako wyrażenie, typ parametru musi być również niejawnie promotable do Edm.Int64, ale nie będzie walidacji rzeczywistej wartości parametru podczas kompilacji, ponieważ wartości parametrów są opóźnione.

Poniżej przedstawiono przykład stałego wyrażenia TOP:

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

Poniżej przedstawiono przykład sparametryzowanego wyrażenia TOP:

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

TOP jest niedeterministyczny, chyba że zapytanie jest sortowane. Jeśli potrzebujesz wyniku deterministycznego, użyj pod klauzuli SKIP i LIMIT w klauzuli ORDER BY . Wartości TOP i SKIP/LIMIT wykluczają się wzajemnie.

Przykład

Poniższe zapytanie Entity SQL używa top, aby określić pierwszy wiersz, który ma zostać zwrócony z wyniku zapytania. Zapytanie jest oparte na modelu AdventureWorks Sales. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:

  1. Postępuj zgodnie z procedurą w temacie Instrukcje: wykonywanie zapytania zwracającego wyniki StructuralType.

  2. Przekaż następujące zapytanie jako argument do ExecuteStructuralTypeQuery metody :

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

Zobacz też