我到处搜索以寻找解决此问题的方法,当我将 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)
如果我删除“按 ID ASC 排序”,它执行正常,但我需要对结果进行排序,但无法找到解决方案。在 SQL Server 2014 Management Studio 中输入查询并添加“Osmium.dbo.delayed”它返回正确的结果,我只需要它在 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 Server 中的某些对象,以允许使用保留字(例如,如果您有一个名为 [file] 的列)或某些字符,例如连字符(名为 [your-db 的数据库) ]).
关于Python 2.7 MSSQL 语法错误接近订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954577/