2

SQLクエリを使用してn番目からn番目のレコードをロードする方法は?

何かのようなもの

select 10 to 20 columnname from tbl order by columnname
4

2 に答える 2

4

SQL Server 2012 には、 および と呼ばれる新しい機能がOFFSETありFETCHます。

SELECT (list of columns)
FROM YourTable
ORDER BY columnName
  OFFSET 10 ROWS 
  FETCH NEXT 10 ROWS ONLY

http://www.kodyaz.com/sql-server-2012/sql-paging-in-sql-server-2012-sql-order-by-offset-fetch-next-rows.aspx

2012 より前のバージョンでは、ROW_NUMBER()関数で CTE (Common Table Expression) を使用し、行番号を使用してその CTE から選択するのが最善の方法です。詳細については、こちらを参照してください。

于 2012-10-03T16:44:11.140 に答える
0

SQL 2005 以降では、使用できますROW_NUMBER()

 DECLARE @p0 Int = 10
 DECLARE @p1 Int = 10

 SELECT [t1].[pkCompanyID]
 FROM (
     SELECT ROW_NUMBER() OVER (ORDER BY [t0].[pkCompanyID]) AS [ROW_NUMBER], [t0].[pkCompanyID]
     FROM [tblCompany] AS [t0]
     ) AS [t1]
 WHERE [t1].[ROW_NUMBER] BETWEEN @p0 + 1 AND @p0 + @p1
 ORDER BY [t1].[ROW_NUMBER]
于 2012-10-03T16:46:20.323 に答える