首页 文章

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

提问于
浏览
0

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'附近的语法不正确

有谁知道为什么?还有替代解决方案吗?

1 回答

  • 1

    可以请确认数据库兼容级别 . SQL Server 2012中存在偏移量 . 如果数据库是2008兼容模式,则关键字不可用 .

    你可以检查如下:

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

    更多信息:Incorrect syntax near OFFSET command

相关问题