当我使用pyodbc查询SQL Server时,仅获得我请求的字段的名称(而不是值本身)。

import pyodbc

conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute('SELECT ? FROM [Projects]', '[ProjectNo]')
for row in cursor.fetchall():
    print(row)


打印以下内容:

('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )


行数等于“项目”表中的行数。当cursor.execute中的第二个参数是“ [ProjectNo]”,“ ProjectNo”或什至是“ blahblahblahblah”时,我也遇到同样的问题;每行仅给出请求字段的名称。

如果在cursor.execute中仅使用一个参数,则不会出现此问题:

cursor.execute('SELECT [ProjectNo] FROM [Projects]')


这将返回我期望的结果。

我在这里想念什么?

最佳答案

你可以这样使用

import pyodbc

conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute('SELECT {} FROM [Projects]".format('[ProjectNo]'))
for row in cursor.fetchall():
    print(row)

关于python - Pyodbc中经过清理的查询仅返回字段名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58413167/

10-12 21:57