Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)

Sco*_*tEU 1 python sql pyodbc

我正在使用 Pyodbc,并且已连接到数据库。我可以轻松地提取仅使用 SELECT 和 FROM 语句的数据。

但是,当我尝试使用 WHERE 语句时,它会抛出语法错误:

这是代码:

import pyodbc

conn = pyodbc.connect('DSN=QueryBuilder')
cursor = conn.cursor()
cursor.execute('SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

语法错误:无效语法

如果我运行:

SELECT * 
FROM dbo.Grantinformation
WHERE HoldingOrganisationName = 'university of edinburgh'
Run Code Online (Sandbox Code Playgroud)

在 SQL Server Management Studio 中,SQL 运行良好,所以很明显我在使用 pyodbc 时做错了什么?

非常感谢

Dan*_*man 5

不,这是一个简单的 Python 语法错误。您的 sql 字符串中有单引号,因此您需要在字符串本身周围使用双引号:

cursor.execute("SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'")
Run Code Online (Sandbox Code Playgroud)