Delen via


TOP (Entiteit SQL)

De SELECT-component kan een optionele TOP-subcomponent hebben na de optionele ALL/DISTINCT-modifier. De subcomponent TOP geeft aan dat alleen de eerste set rijen wordt geretourneerd uit het queryresultaat.

Syntaxis

[ TOP (n) ]

Argumenten

n De numerieke expressie waarmee het aantal rijen wordt opgegeven dat moet worden geretourneerd. n kan één numerieke letterlijke waarde of één parameter zijn.

Opmerkingen

De TOP-expressie moet één numerieke letterlijke waarde of één parameter zijn. Als een constante letterlijke waarde wordt gebruikt, moet het letterlijke type impliciet promoeerbaar zijn voor Edm.Int64 (byte, int16, int32 of int64 of een providertype dat is toegewezen aan een type dat promotabel is aan Edm.Int64) en de waarde moet groter dan of gelijk zijn aan nul. Anders wordt er een uitzondering gegenereerd. Als een parameter wordt gebruikt als een expressie, moet het parametertype ook impliciet promotable zijn voor Edm.Int64, maar er wordt geen validatie van de werkelijke parameterwaarde tijdens de compilatie omdat de parameterwaarden te laat gebonden zijn.

Hier volgt een voorbeeld van een constante TOP-expressie:

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

Hier volgt een voorbeeld van een geparameteriseerde TOP-expressie:

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

TOP is niet-deterministisch, tenzij de query wordt gesorteerd. Als u een deterministisch resultaat nodig hebt, gebruikt u de subcomponenten SKIP en LIMIT in de ORDER BY-component . De TOP en SKIP/LIMIT sluiten elkaar wederzijds uit.

Opmerking

De volgende Entiteit SQL-query gebruikt de TOP om de bovenste één rij op te geven die moet worden geretourneerd vanuit het queryresultaat. De query is gebaseerd op het AdventureWorks Sales Model. Voer de volgende stappen uit om deze query te compileren en uit te voeren:

  1. Volg de procedure in Procedure: Voer een query uit die StructureleType-resultaten retourneert.

  2. Geef de volgende query als argument door aan de ExecuteStructuralTypeQuery methode:

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

Zie ook