Python 2.7 MSSQL 语法错误接近订单

标签 python sql-server python-2.7 pymssql

我到处搜索以寻找解决此问题的方法,当我将 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/

相关文章:

SQL - 显示两个日期之间的所有日期

python - 尝试除了奇怪的行为 python 2.7

javascript - 如何将 Bootstrap 、css、图像、js 添加到谷歌应用引擎?

Python 重复列表

python - 如何模拟从 getattr 返回的函数?

Python 2.7 未在 Cygwin 中加载

python - 基于 timedrotatingfilehandler 的类不会在日志中写入任何内容

Python Pandas - 合并列表中每个项目的数据帧

sql-server - 如何在 SQL Server Integration Services 项目中使用目录服务的 OLE DB 提供程序?

sql - 如何使用 SQL Management Studio 在数据库之间传输所有表?