SKIP (Entity SQL)
物理的なページングは、ORDER BY 句の SKIP サブ句を使用して実行できます。SKIP を ORDER BY 句と切り離して使用することはできません。
[ SKIP n ]
引数
- n
スキップするアイテムの数。
解説
SKIP 式のサブ句が ORDER BY 句に存在する場合、結果は並べ替え順序に従って並べ替えられ、結果セットには SKIP 式の直後の行から始まる行が含まれます。たとえば、SKIP 5 は、先頭の 5 行をスキップし、6 行目以降を返します。
[!メモ]
TOP 修飾子と SKIP サブ句が同じクエリ式内に存在する場合、Entity SQL クエリは無効です。TOP 式を LIMIT 式に変更してクエリを記述し直す必要があります。
[!メモ]
SQL Server 2000 では、キー以外の列で ORDER BY と共に SKIP を使用すると、不適切な結果が返される場合があります。キー以外の列に重複するデータが存在する場合、指定された数を超える行はスキップされます。これは、SQL Server 2000 用に SKIP が変換される方法によるものです。たとえば、次のコードでは、
E.NonKeyColumn
に重複値が存在する場合、5 行を超える行はスキップされます。
SELECT [E] FROM Container.EntitySet AS [E] ORDER BY [E].[NonKeyColumn] DESC SKIP 5L
例
次の Entity SQL クエリでは、SELECT ステートメントで返されたオブジェクトの並べ替え順序の指定に ORDER BY 演算子と SKIP を使用します。このクエリは、AdventureWorks Sales Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。
「StructuralType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。
次のクエリを引数として
ExecuteStructuralTypeQuery
メソッドに渡します。
SELECT VALUE p FROM AdventureWorksEntities.Product
AS p order by p.ListPrice SKIP(70)
出力を次に示します。
ProductID: 392
Name: Hex Nut 3
ProductNumber: HN-6320
MakeFlag: False
ProductID: 393
Name: Hex Nut 14
ProductNumber: HN-7161
MakeFlag: False
ProductID: 394
Name: Hex Nut 15
ProductNumber: HN-7162
MakeFlag: False
ProductID: 395
Name: Hex Nut 4
ProductNumber: HN-8320
MakeFlag: False
ProductID: 396
Name: Hex Nut 18
ProductNumber: HN-9161
MakeFlag: False
参照
処理手順
クエリの結果をページングする方法 (Entity Framework)
リファレンス
ORDER BY (Entity SQL)
TOP (Entity SQL)