gpt4 book ai didi

sql - OFFSET 命令附近的语法不正确

转载 作者:行者123 更新时间:2023-12-02 15:21:55 24 4
gpt4 key购买 nike

为什么这不起作用并给我一个“偏移命令附近的语法不正确”错误

SELECT o.orderdate, o.orderid, o.empid, o.custid FROM Sales.Orders o
ORDER BY o.orderdate, o.orderid
OFFSET 50 ROWS
FETCH NEXT 25 ROWS ONLY;

我正在使用 SQL Server Express 2014

最佳答案

检查数据库兼容性级别。OFFSET 是 SQL Server 2012 中添加的,因此如果您的数据库处于 2008 兼容模式,则该关键字不可用。

View or Change the Compatibility Level of a Database

在 T-SQL 中你可以这样检查:

 USE AdventureWorks2012;  
GO

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

以下是取自 How to check SQL Server Database compatibility after sp_dbcmptlevel is deprecated? 的兼容性级别列表:

 65 - SQL Server 6.5
70 - SQL Server 7.0
80 - SQL Server 2000
90 - SQL Server 2005
100 - SQL Server 2008/R2
110 - SQL Server 2012
120 - SQL Server 2014
130 - SQL Server 2016
140 - SQL Server 2017
<小时/>

此外,Azure SQL 数据仓库和并行数据仓库不支持 OFFSET 子句,从 ORDER BY 的文档可以看出子句:

-- Syntax for SQL Server and Azure SQL Database  

ORDER BY order_by_expression
[ COLLATE collation_name ]
[ ASC | DESC ]
[ ,...n ]
[ <offset_fetch> ]

<offset_fetch> ::=
{
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
[
FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
]
}

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

[ ORDER BY
{
order_by_expression
[ ASC | DESC ]
} [ ,...n ]
]

关于sql - OFFSET 命令附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com