Python 2.7 MSSQL 命令附近语法错误

Python 2.7 MSSQL Incorrect Syntax near Order

我到处搜索以寻找解决此问题的方法,当我将 Order by 添加到语句时收到错误消息:

(156, "Incorrect syntax near the keyword 'Order'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")

我的 .py 文件中的代码是:

db = pymssql.connect(server='DESKTOP-3G1FB9B\SQLEXPRESS', user='sa', password='', database='Osmium')
cursor = db.cursor()
sql = "(SELECT TOP 1 * FROM delayed Order by ID ASC)"
cursor.execute(sql)

如果我删除 'Order by ID ASC' 它执行正常,但我需要订购结果并且无法找到解决方案。将查询输入 SQL Server 2014 Management Studio 并添加 "Osmium.dbo.delayed" 它 returns 正确的结果,我只需要它在 Python (2.7) 脚本

SELECT TOP 1 * FROM Osmium.dbo.delayed Order by ID ASC

提交此作答,并说明原因:

将您的 sql 变量声明更改为:

sql = "SELECT TOP 1 * FROM [delayed] ORDER BY [ID] ASC"

ORDER BY 是 T-SQL 中的子句,因此不需要括号来建立任何运算顺序。方括号可用于包围 SQL 服务器中的某些对象,以允许使用保留字(例如,如果您有一个名为 [file] 的列)或某些字符,例如连字符(名为[你的数据库]).