在前M个记录之后选择前N个记录

时间:2015-04-15 15:32:32

标签: sql sql-server tsql

我正在开发一个应用程序,在我的场景中我有一个BookTable表,它没有主键(至少到现在为止)并且我希望能够检索像前10位的记录,然后是11-20然后21-30,我希望我在此澄清我的观点。我已经查看谷歌,到目前为止一直没有找到任何解决方案。希望我能在这里得到帮助。谢谢。 P.S我正在使用MS SQL Server 2012

2 个答案:

答案 0 :(得分:1)

一些谷歌搜索让我相信这将在MSSQL 2012中有效。

SELECT a, b FROM Table 
ORDER BY a
OFFSET 50 ROWS FETCH NEXT 25 ROWS ONLY

文档说只有拥有ORDER BY子句才能使用它。

答案 1 :(得分:1)

Select Top(@numRegPerPage) ROW_NUMBER() OVER(ORDER BY myOrderField ASC) as NUM_REG
Where NUM_REG > @lastNumReg