Sdílet prostřednictvím


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:

  1. Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky typu StructuralType.

  2. Jako argument metody ExecuteStructuralTypeQuery předejte následující dotaz:

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

Viz také