TOP (Entity SQL)
SELECT 句には、オプションの ALL/DISTINCT 修飾子に続けてオプションの TOP サブ句を指定できます。 TOP サブ句は、クエリ結果の先頭から指定した行セットだけを返すよう指定します。
構文
[ TOP (n) ]
引数
n
返す行の数を指定する数値式。 n
は単一の数値リテラルかまたは単一のパラメーターです。
Remarks
TOP 式には、単一の数値リテラルまたは単一のパラメーターを使用してください。 定数リテラルを使用する場合は、リテラルの種類を Edm.Int64 (byte、int16、int32、int64、または Edm.Int64 に昇格可能な型にマップされる任意のプロバイダー型) に暗黙的に昇格でき、その値が 0 以上である必要があります。 それ以外の場合は、例外が発生します。 パラメーターを式として使用する場合は、パラメーター型も Edm.Int64 に暗黙的に昇格できる必要がありますが、パラメーター値は遅延バインドされるため、コンパイル時に実際のパラメーター値は検証されません。
定数 TOP 式の例を以下に示します。
select distinct top(10) c.a1, c.a2 from T as a
パラメーター化された TOP 式の例を以下に示します。
select distinct top(@topParam) c.a1, c.a2 from T as a
TOP は、クエリが並べ替えられていない限り、非決定的です。 確定的な結果が必要な場合は、 ORDER BY 句の SKIP サブ句および LIMIT サブ句を使用します。 TOP SKIP/LIMIT
例
次の Entity SQL クエリでは、TOP を使用して、クエリ結果から返される 1 番上の 1 行を指定します。 このクエリは、AdventureWorks Sales Model に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。
「方法: StructuralType 結果を返すクエリを実行する」の手順に従います。
次のクエリを引数として
ExecuteStructuralTypeQuery
メソッドに渡します。SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact