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

Pyodbc - Running SQL Query with WHERE clause (syntax errors)

我正在使用 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'')

我收到这个错误:

SyntaxError: invalid syntax

如果我运行:

SELECT * 
FROM dbo.Grantinformation
WHERE HoldingOrganisationName = 'university of edinburgh'

在 SQL Server Management Studio 中 SQL 运行 很好,所以显然我在 pyodbc 上做错了什么?

非常感谢

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

cursor.execute("SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'")