Microsoft SQL Server 2008 R2
我正在运行一个大型SQL选择查询,可能要花几个小时才能完成。因此,我尝试将查询结果分成较小的集合。
例如,首先返回结果1-10,000,然后返回10,001-20000,依此类推
我使用了下面的代码,但这给了我错误
SELECT *
FROM PP_ConsolidatedSalesView
WHERE financial_period = '2018-11'
ORDER BY id
OFFSET 10000 ROWS
FETCH NEXT 10000 ROWS ONLY
我使用循环来动态更改偏移量并获取下一个值。
错误消息是:
“ OFFSET”附近的语法不正确
有人知道为什么吗?还有替代解决方案吗?
答案 0 :(得分:1)
能否请您确认数据库的兼容性级别。 SQL Server 2012中存在偏移量。如果数据库为2008兼容模式,则关键字is not available。
您可以按如下所示进行检查:
USE AdventureWorks2012;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'AdventureWorks2012';
GO