TOP (Entitets-SQL)
SELECT-satsen kan ha en valfri TOP-undersats som följer den valfria ALL/DISTINCT-modifieraren. Undersatsen TOP anger att endast den första uppsättningen rader returneras från frågeresultatet.
Syntax
[ TOP (n) ]
Argument
n
Det numeriska uttryck som anger antalet rader som ska returneras. n
kan vara en enskild numerisk literal eller en enskild parameter.
Kommentarer
TOP-uttrycket måste vara antingen en numerisk literal eller en enskild parameter. Om en konstant literal används måste literaltypen implicit vara promotable till Edm.Int64 (byte, int16, int32 eller int64 eller någon providertyp som mappar till en typ som är promotable till Edm.Int64) och dess värde måste vara större än eller lika med noll. Annars utlöses ett undantag. Om en parameter används som ett uttryck måste parametertypen också vara implicit promotable till Edm.Int64, men det blir ingen validering av det faktiska parametervärdet under kompileringen eftersom parametervärdena är sent avgränsade.
Följande är ett exempel på ett konstant TOP-uttryck:
select distinct top(10) c.a1, c.a2 from T as a
Följande är ett exempel på parametriserat TOP-uttryck:
select distinct top(@topParam) c.a1, c.a2 from T as a
TOP är icke-deterministisk om inte frågan sorteras. Om du behöver ett deterministiskt resultat använder du delsatserna SKIP och LIMIT i ORDER BY-satsen . TOP och SKIP/LIMIT är ömsesidigt uteslutande.
Exempel
Följande entitets-SQL-fråga använder TOP för att ange den översta raden som ska returneras från frågeresultatet. Frågan baseras på AdventureWorks försäljningsmodell. Följ dessa steg för att kompilera och köra den här frågan:
Följ proceduren i Så här kör du en fråga som returnerar StructuralType-resultat.
Skicka följande fråga som ett argument till
ExecuteStructuralTypeQuery
metoden:SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact