python - pyodbc 中的清理查询仅返回字段名称

标签 python sql pyodbc

当我使用 pyodbc 查询 SQL 服务器时,我只得到我请求的字段的名称(而不是值本身)。

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/

相关文章:

sql-server - 将存储过程选择结果读入 pandas 数据帧

python - 使用生成器作为 sorted() 的输入而不是列表理解是否值得

python - 如何获取列表列表中所有出现的相同值的索引列表?

asp.net - VS2012 - 服务器/数据库资源管理器中未显示 "Create table"或 "show table data"菜单选项

python - 连接到 SQL Server 会引发 pyodbc.InterfaceError

python - PYODBC 错误 07002 - 参数太少

python - 删除 pandas 列中的前导零,但仅适用于数字

python - 在python中用一个列表生成两组组合

mysql - 使用 LEFT-JOIN 进行缓慢的 mysql 查询

mysql - 从其他表中选择一个值时插入