Sql server SQL Server使用where子句获取下一个x行数

Sql server SQL Server使用where子句获取下一个x行数,sql-server,fetch,offset,Sql Server,Fetch,Offset,Microsoft SQL Server 2008 R2 我正在运行一个大型SQL select查询,可能需要数小时才能完成。因此,我尝试将查询结果分成更小的集合 e、 g首先返回结果1-10000,然后返回10001-20000,依此类推 我使用了下面的代码,但它给了我错误 SELECT * FROM PP_ConsolidatedSalesView WHERE financial_period = '2018-11' ORDER BY id OFFSET 10000 ROWS FETCH

Microsoft SQL Server 2008 R2

我正在运行一个大型SQL select查询,可能需要数小时才能完成。因此,我尝试将查询结果分成更小的集合

e、 g首先返回结果1-10000,然后返回10001-20000,依此类推

我使用了下面的代码,但它给了我错误

SELECT * 
FROM PP_ConsolidatedSalesView
WHERE financial_period = '2018-11'
ORDER BY id
OFFSET 10000 ROWS
FETCH NEXT 10000 ROWS ONLY
我使用循环动态更改偏移量并获取下一个值

错误消息是:

“OFFSET”附近的语法不正确


有人知道为什么吗?还有其他解决方案吗?

请确认数据库兼容性级别。SQL Server 2012中存在偏移量。若数据库为2008兼容模式,则关键字不可用

您可以按如下方式进行检查:

USE AdventureWorks2012;  
 GO  

 SELECT compatibility_level  
 FROM sys.databases WHERE name = 'AdventureWorks2012';  
 GO

更多信息请点击此处:

您使用的是什么版本?您可以分享准确的错误消息吗?您运行的SQL Server版本可能重复?运行“选择@@VERSION”并查看。抵消FETCH是在SQL Server 2012中引入的,在早期版本中不可用。它是SQL Server 2008 R2