为啥我不能在我的 SQL Server 上查询 OFFSET/FETCH 查询?
Posted
技术标签:
【中文标题】为啥我不能在我的 SQL Server 上查询 OFFSET/FETCH 查询?【英文标题】:Why can't I query OFFSET/ FETCH query on my SQL Server?为什么我不能在我的 SQL Server 上查询 OFFSET/FETCH 查询? 【发布时间】:2013-11-14 10:18:07 【问题描述】:我想在我的 SQL Server 上运行此查询,如下所示:
Microsoft SQL Server Management Studio 10.50.1600.1
但它不能识别OFFSET,所以显示ERROR?
SELECT * FROM dbo.tbl_MatchDetail
ORDER BY MatchDetailID
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
【问题讨论】:
您显示的语法显然是在 SQL Server 2012 中引入的,因此,如果您的每个标签都使用 SQL Server 2008,那就是问题所在。请参阅this question 了解替代方案。 okthanx 是否有任何等效的 MSSQL 2008 R2 语法? 查看我链接到的问题的答案。 【参考方案1】:OFFSET FETCH 是 Sql Server 2012 中添加的新功能,在 Sql Server 2008 中不存在。
【讨论】:
Microsoft SQL Server Management Studio 12.0.1524.0 这是我上面的 MSSQL 信息,MSSQL 2014 CTP2 仍然 OFFSET 关键字无效为什么? OFFSET 10 ROWS 仅获取 NEXT 10 ROWS。 在末尾添加 Only 关键字。 @AmirrezaKeshavarz 它是否适用于 SQL Server 2014 (12.0.2000.8)?我总是收到“'OFFSET'附近的语法错误”错误 @ArianSharifian 在 SSMS 2012 中遇到同样的问题:/【参考方案2】:请注意,如果您没有订单,即使在 2014 年也会收到错误消息。偏移量必须遵循 order by 语句。
【讨论】:
是的,这就是我的问题。谢谢以上是关于为啥我不能在我的 SQL Server 上查询 OFFSET/FETCH 查询?的主要内容,如果未能解决你的问题,请参考以下文章
为啥SQL Server 2008 R2在Win7系统上安装后不能运行!求解答。
为啥在我的 Mac 上编译的 C++ 库不能在服务器上运行?