我正在尝试获取编号。 mssql表中的记录/计数,但得到:
pymssql.ColumnsWithoutNamesError:指定为as_dict = True,并且存在没有名称的列:[0]
这是我正在尝试的:
cur = hook.get_cursor()
cur.execute(self.sql)
查询为:
select count(*) from abc
答案 0 :(得分:0)
请参见here:
问题是,如果您使用以下命令打开连接或光标 as_dict = True,那么输出中的每一列都必须有一个名称。用 常规数据库表列,输出名称继承自 列名。如果您有一个SQL表达式,例如在 列名称(例如:MAX(foo)),则输出列没有 名称,因此不会显示。您可以做两件事 使它起作用:
1. Give the SQL expression a name -- e.g.: SELECT MAX(foo) AS [MAX(foo)]... 2. Don't use as_dict=True for these queries
我认为COUNT函数也是一样。因此,尝试使用“ AS”为结果命名。
或者查看 pymsql 的 _mssql 模块(这里还有COUNT的example:
import _mssql
conn = _mssql.connect(server='SQL01', user='user', password='password', database='mydatabase')
numemployees = conn.execute_scalar("SELECT COUNT(*) FROM employees")