TOP (Entity SQL)
Klauzule SELECT může mít volitelnou dílčí klauzuli TOP za volitelným modifikátorem ALL/DISTINCT. Dílčí klauzule TOP určuje, že z výsledku dotazu se vrátí pouze první sada řádků.
Syntaxe
[ TOP (n) ]
Argumenty
n
Číselný výraz, který určuje počet řádků, které se mají vrátit. n
může to být jeden číselný literál nebo jeden parametr.
Poznámky
Výraz TOP musí být buď jeden číselný literál, nebo jeden parametr. Pokud se používá konstantní literál, musí být literálový typ implicitně propagační na Edm.Int64 (bajt, int16, int32 nebo int64 nebo jakýkoli typ zprostředkovatele, který se mapuje na typ, který je propagační na Edm.Int64) a jeho hodnota musí být větší nebo rovna nule. V opačném případě se vyvolá výjimka. Pokud se parametr používá jako výraz, musí být typ parametru implicitně povýšen také na Edm.Int64, ale během kompilace nebude žádné ověření skutečné hodnoty parametru, protože hodnoty parametrů jsou zpožděné.
Následuje příklad konstantního výrazu TOP:
select distinct top(10) c.a1, c.a2 from T as a
Následuje příklad parametrizovaného výrazu TOP:
select distinct top(@topParam) c.a1, c.a2 from T as a
Top není deterministický, pokud není dotaz seřazený. Pokud požadujete deterministický výsledek, použijte v klauzuli ORDER BY dílčí klauzule SKIP a LIMIT. Top a SKIP/LIMIT se vzájemně vylučují.
Příklad
Následující dotaz Entity SQL používá top k určení horního jednoho řádku, který se má vrátit z výsledku dotazu. Dotaz je založený na prodejním modelu AdventureWorks. Chcete-li tento dotaz zkompilovat a spustit, postupujte takto:
Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky typu StructuralType.
Jako argument metody
ExecuteStructuralTypeQuery
předejte následující dotaz:SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact