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 に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。

  1. StructuralType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。

  2. 次のクエリを引数として 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)

概念

ページング (Entity SQL)